根据C++引用,set :: insert应该返回pair,其中迭代器指向新插入的元素或现有元素(如果存在)。从std :: set :: insert()返回迭代器是否为const?
但我有分配给迭代器的一个问题,因为这个简单的例子说明:
int main() {
set<int> set;
*set.insert(5).first = 5;
return 0;
}
我试过G ++和锵既不作品。
set.cc:7:24: error: read-only variable is not assignable
*set.insert(5).first = 5;
~~~~~~~~~~~~~~~~~~~~^
我找不到,指示迭代器应该尊重const对象的文档中任何事情,没有什么类型签名要么表明这一点。有人能帮我理解为什么这不起作用吗?
Duh。我应该想到这一点。谢谢。在我的真实例子中,它不是一个整数,是一个更复杂的对象,我想改变一些状态。 – drwowe 2013-04-30 11:54:47