为了避免复制对象,通常最好这样做for(auto &x : container){...}
比for(auto x : container){...}
但是在常规C++中,引用是非常量的,这将允许修改容器。因此,当我们在不修改数据的情况下使它们成为const
时,是否理所当然地要进行以下操作?for(const auto &x : container){...}
最佳答案
这取决于您想要在for
语句的正文中执行的操作。
auto const&
。 auto&&
。我更喜欢auto&
,因为它可以处理取消引用容器的迭代器会产生右值(vector<bool>
)的情况。 还有一个proposal允许
for(x : container) { ... }
这将是不太冗长的形式
for(auto&& x : container) { ... }
关于c++ - 在for-each循环中使用 'const'时是否需要添加 'auto'?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25410899/