gpt4 book ai didi

C++ foreach 循环甚至选择可变的 begin()

转载 作者:太空狗 更新时间:2023-10-29 20:04:44 25 4
gpt4 key购买 nike

写作时

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

关于C++ foreach 循环甚至选择可变的 begin(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17271055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com