我有一个对象容器,我想将每个对象中的相同成员复制到该成员类型的容器中。
也就是说,类似这样的事情:
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循环。
transform 用λ(我想你还没有分配你的向量):
transform
std::transform(src.begin(), src.end(), std::back_inserter(dst), [](const auto& v) -> int { return v.x; });