代码之家  ›  专栏  ›  技术社区  ›  Adrian

如何使用算法将一个容器中对象中的成员复制到另一个容器中?

  •  0
  • Adrian  · 技术社区  · 6 年前

    我有一个对象容器,我想将每个对象中的相同成员复制到该成员类型的容器中。

    也就是说,类似这样的事情:

    struct X { int x; }
    
    std::vector<X> src;
    std::vector<int> dst;
    
    ...
    
    auto it_dst = dst.begin();
    for (auto& element : src) {
      *(it_dst++) = element.x;
    }
    

    当然,使用算法而不是for循环。

    1 回复  |  直到 6 年前
        1
  •  6
  •   Matthieu Brucher    6 年前

    transform 用λ(我想你还没有分配你的向量):

    std::transform(src.begin(), src.end(), std::back_inserter(dst),
                   [](const auto& v) -> int { return v.x; });