Possible Duplicate:
C++ STL set update is tedious: I can't change an element in place为什么这个迭代器是const?
为什么这段代码抱怨说,当它没有被声明时,我的参数是一个const_iterator?
void foo(std::set<int>::iterator it)
{
*it=2;
}
我得到错误:“与_TP = INT it.std :: _ Rb_tree_const_iterator < _TP> ::运算符*”
看完链接后,我明白了。我不喜欢它,但它是有道理的。 – 2012-03-14 20:28:49
他们这样做是因为否则他们不能保持“侵入”(他们不能保证它仍然被排序),这将使'set'失效。 – 2012-03-14 20:41:18