[英]How to copy a member in an object in one container to another container using an algorithm?
I have a container of objects and I would like to copy the same member from each object to a container of that member's type. 我有一个对象容器,我想将相同的成员从每个对象复制到该成员类型的容器中。
Ie Something like this: 即是这样的:
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;
}
Of course, using an algorithm and not a for loop. 当然,使用算法而不是for循环。
Seems like a job for transform
with a lambda (I consider you haven't allocated your vector): 似乎是用lambda进行
transform
的工作(我认为您尚未分配向量):
std::transform(src.begin(), src.end(), std::back_inserter(dst),
[](const auto& v) -> int { return v.x; });
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.