今天做题遇到的问题
先贴代码
se.insert(6);
se.insert(8);
se.insert(6);
se.erase(6);
cout << se.size() << endl;
最后的输出结果为1
这段代码的本意是维护一个堆,想当然的使用 erase 删除元素,没想到竟会删除两个元素,后来查阅了 cplusplus 发现确实是会删除所有6,想要删除某个6,需要通过迭代器删除
http://www.cplusplus.com/
se.insert(6);
se.insert(8);
se.insert(6);
se.erase(se.begin());
cout << se.size() << endl;
这里6最小,因此6位于 se.begin(),此时输出为2,正确