我有一个 CustomClass
对象的 vector - 它有一个名为 name
的字符串字段。如何在 C++ 中创建这些名称的集
?
如果我这样做:
std::vector<CustomClass> vec ;
// .... populate with data
std::set< std::string> myset( vec.begin(), vec.end() ) ;
编译器当然会报错,但是我怎样才能“应用”一个函数,以便从 vector 的每个元素中获取“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; });
关于c++ - 从 vector<T> 创建一组字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48264298/