c++ - 如何使用copy_if从2d vector 中复制特定项目

标签 c++ c++11 vector

例如,我有一个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/

相关文章:

C++ 二叉搜索树通过递归插入

c++ - 如何在结构或类的 vector 中快速搜索具有特定值的对象? C++

c++ - OpenCV waitKey() 应该返回 -1 但没有

c++ - 自 Visual Studio 2017 15.5.1 以来,_com_ptr_t 出现 Intellisense 错误

c++ - 如何提高素数生成器 (SPOJ) 解决方案的效率?

c++ - 简单的类 MPL 类型映射模板

c++ - 我怎样才能得到 double 值?

c++ - 为什么类中的 vector 自动变为 NULL

c++ - vector::iterator也可以用作 vector 吗

c++ - 在 C++ 中输入空白行之前,如何要求用户输入整数?