根据C++引用,set :: insert应该返回迭代器指向新插入元素的对,或者现有元素(如果存在).
但我有一个问题,分配给迭代器,因为这个简单的例子显示:
int main() {
set<int> set;
*set.insert(5).first = 5;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我尝试过G ++和Clang,但都不行.
set.cc:7:24: error: read-only variable is not assignable
*set.insert(5).first = 5;
~~~~~~~~~~~~~~~~~~~~ ^
Run Code Online (Sandbox Code Playgroud)
我在文档中找不到任何指示迭代器应该遵循const对象的内容,类型签名中的任何内容都不会指示这一点.有人可以帮助我理解为什么这不起作用?