【问题标题】:Iterating by reference on a C++ vector with foreach [duplicate]使用foreach在C ++向量上通过引用进行迭代[重复]
【发布时间】:2022-01-15 08:14:28
【问题描述】:

这样做是否有意义:

void my_fun(std::vector<int>& n)
    {
        for (int& i : n) 
            {
                do something(i);
            }
    }

与没有引用的普通 foreach 循环相比?否则该值会通过副本传递吗?

【问题讨论】:

  • 是的,如果您不使用参考,您将获得一份副本。
  • 如果可能的话应该是for (const int&amp; i : n)

标签: c++ vector foreach reference stl


【解决方案1】:

假设do_something 的签名是void do_something(int&amp; i),它会按照您的想法执行。

如果您不将 & 符号放在基于范围的 for 循环中,您将得到一个副本。

【讨论】:

    猜你喜欢
    • 2010-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-20
    • 2016-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多