如何使用std算法替换此for循环?

毛son

我有:

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吗?

怎么做,谢谢!

毛son

我以某种方式找到了理想的答案:

std::for_each(ManyAs.begin(), ManyAs.end(),
    [&](A& a)
    {
        int offset=(&a) - (&ManyAs.front());
        a.index = offset;
    });

实际上,这与Raxvan的答案非常相似,但是所有内容都是本地的,这是更好的imo。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何用for循环替换此memcpy?

来自分类Dev

如何用更惯用的方式替换此循环?

来自分类Dev

std :: bind()如何使用标准库算法?

来自分类Dev

是否可以使用Linq替换此Foreach循环

来自分类Dev

如何使用循环编写此递归

来自分类Dev

如何使用嵌套循环反转此模式?

来自分类Dev

如何使用嵌套的for循环编写此代码?

来自分类Dev

如何使用循环编写此Ruby函数?

来自分类Dev

如何使用循环简化此代码

来自分类Dev

如何使用while循环执行此操作

来自分类Dev

如何使用foreach循环遍历此数组?

来自分类Dev

如何使用 for 循环打印此内容?

来自分类Dev

如何仅使用stl算法实现此功能

来自分类Dev

数组算法:如何使用javascript修改此嵌套数组?

来自分类Dev

如何仅使用stl算法实现此功能

来自分类Dev

如何编辑此算法,以便在不替换或重用元素的情况下创建组合?

来自分类Dev

此嵌套循环的算法复杂度

来自分类Dev

此同步算法如何工作?

来自分类Dev

此密码算法如何工作?

来自分类Dev

如何通过STL mimax算法替换我的``for''循环以找到最小/最大

来自分类Dev

如何停止此for循环?

来自分类Dev

如何加快此循环?

来自分类Dev

如何循环此数组?

来自分类Dev

如何计时此循环

来自分类Dev

此for / in循环如何工作?

来自分类Dev

如何终止此循环?

来自分类Dev

此for循环如何工作?

来自分类Dev

如何使用C ++ STL算法重写嵌套循环?

来自分类Dev

如何使用C ++ STL算法重写嵌套循环?