我有:
struct A
{
int index;
A(): index(0) {}
}
std::vector<A> ManyAs(10, A());
并想做:
for (int i = 0, size = ManyAs.size(); i < size; ++i)
{
ManyAs[i].index = i;
}
我想用std algotrithm做到这一点,也许std::for_each
吗?
怎么做,谢谢!
我以某种方式找到了理想的答案:
std::for_each(ManyAs.begin(), ManyAs.end(),
[&](A& a)
{
int offset=(&a) - (&ManyAs.front());
a.index = offset;
});
实际上,这与Raxvan的答案非常相似,但是所有内容都是本地的,这是更好的imo。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句