根据 C++ 参考, set::insert 应该返回迭代器指向新插入元素或现有元素(如果存在)的对。
但是我在分配给迭代器时遇到了问题,正如这个简单的示例所示:
int main() {
set<int> set;
*set.insert(5).first = 5;
return 0;
}
我试过 G++ 和 Clang 都没有。
set.cc:7:24: error: read-only variable is not assignable
*set.insert(5).first = 5;
~~~~~~~~~~~~~~~~~~~~ ^
我在文档中找不到任何表明迭代器应该遵循 const 对象的内容,并且类型签名中也没有任何内容表明这一点。有人可以帮我理解为什么这不起作用吗?