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

Adr*_*ian 0 c++ c++14 c++17

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

就是这样的:

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;
}
Run Code Online (Sandbox Code Playgroud)

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

Mat*_*her 6

看起来像是一个transformlambda 的工作(我认为你还没有分配你的矢量):

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