使用 foreach 通过引用迭代 C++ 向量

Iterating by reference on a C++ vector with foreach

做这样的事情有意义吗:

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

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

假设 do_something 的签名是 void do_something(int& i)

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