例如,我有一个2d vector 和一个1d vector ,我想使用算法库中的 std::copy_if 复制每行的第一项:
std::vector<std::vector<std::string>> names{ { "Allan", "Daniel", "Maria" }, {"John", "Louis", "Will"}, {"Bill", "Joe", "Nick"}};
因此,我们必须将“Allan”,“John”和“Bill”复制到目标 vector dst
std::vector<std::string> dst;
最佳答案
您应该使用std::transform
而不是std::copy_if
:
std::transform(names.begin(), names.end(), std::back_inserter(dst),
[](const std::vector<std::string>& v) { return v[0]; });
关于c++ - 如何使用copy_if从2d vector 中复制特定项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61391176/