写的时候
for(const auto& val: my_container)
sum += val
Visual Studio 选择 的可变版本begin()
,这是设计使然还是错误?
当我在写入容器上使用副本时,这在我的代码中是一个相当大的性能问题。
写的时候
for(const auto& val: my_container)
sum += val
Visual Studio 选择 的可变版本begin()
,这是设计使然还是错误?
当我在写入容器上使用副本时,这在我的代码中是一个相当大的性能问题。
这是设计使然。my_container
在确定是否将其视为 const时,“foreach”循环不会查看迭代变量的限定符或引用限定符。解决方法是显式添加 const
const auto& my_container_const = my_container;
for(const auto& val: my_container_const)
sum += val
这是预期的行为 aconst_iterator
不是 aconst iterator
并且在任何情况下begin
返回 const 取决于const
容器的性质而不是存储返回值的变量。