据C++参考,set::insert应该返回一个pair,其中迭代器指向新插入的元素,或者是已存在的元素(如果存在)。
但是我遇到了一个问题,就像这个简单的例子所展示的:
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对象的说明,类型签名也没有表明这一点。请问有人能帮我理解为什么这样不起作用吗?