2013-05-26 25 views
0

我有一個set < long long > A更改集合數據結構元素的值?

ll k; 
for (int i=0 ; i<500 ; i++) { 
    cin >> k ; 
    A.insert (k) ; 
} 
現在

的時候我想改變像元素的值:將500元后

A[0]--; 

編譯器給了我這個錯誤:

no match for 'operator[]' in 'A[0]'

我將不勝感激,如果你幫助我。

回答

0

一套是元素的集合,你可以「有」或「不要」有一個元素(所以如果你insert數字6五次,它仍然只計數一次)。所以要刪除你的元素erase吧。在一組上使用[]沒有多大意義(或者對其返回的內容做--)。

也許您正在尋找使用另一個容器類型 - 也許是map<long long, int> B,您使用B[k]++;。那麼稍後你可以做B[0]--; - 雖然如果0未被使用,那麼你最終會在該元素中使用-1,所以你可能想用(*B.begin())--;來代替 - 這取決於你想要達到的目標。

+0

非常感謝,這很有幫助。 – Kia