gho*_*der 1 c++ lambda vector set c++11
我有一个CustomClass对象向量- 有一个字符串字段调用name.如何set在C++中创建这些名称?
如果我这样做:
std::vector<CustomClass> vec ;
// .... populate with data
std::set< std::string> myset( vec.begin(), vec.end() ) ;
Run Code Online (Sandbox Code Playgroud)
编译器当然会抱怨,但是如何"应用"一个函数,以便我从向量的每个元素中得到"vec.name"?
我正在使用C++ 11.
您可以将std :: transform与lambda一起使用(因为C++ 11),例如
std::set<std::string> myset;
std::transform(vec.begin(),
vec.end(),
std::inserter(myset, myset.end()),
[](const CustomClass& cc) { return cc.name; });
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
98 次 |
| 最近记录: |