gpt4 book ai didi

c++ - 在 C++11 基于范围的 'for' 循环中获取对 STL 容器元素的引用

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:00:12 25 4
gpt4 key购买 nike

for (Something something : setOfSomething)          // OK
for (Something const& something : setOfSomething) // OK
for (Something& something : setOfSomething) // ERROR

error: invalid initialization of reference of type 'Something&'
from expression of type 'const Something'

迭代器从什么时候开始返回 const Something?它应该返回 Something&Something const&。由于基于范围的“for”循环被解释为 that ,我对发生的事情没有合理的解释。

编辑:我说的是 unordered_set 而不是 set,对于这种混淆,我们深表歉意。

最佳答案

您不能改变 set 的成员,因为这可能会违反 set 不变量。因此,编译器限制您获取 const 引用或拷贝。

关于c++ - 在 C++11 基于范围的 'for' 循环中获取对 STL 容器元素的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10194816/

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