2013-05-26 24 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