使用 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 循环中,您将得到一个副本。
做这样的事情有意义吗:
void my_fun(std::vector<int>& n)
{
for (int& i : n)
{
do something(i);
}
}
与没有引用的普通 foreach 循环相比?否则值会通过副本传递吗?
假设 do_something
的签名是 void do_something(int& i)
。
如果您不将 & 符号放入基于范围的 for 循环中,您将得到一个副本。