根據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