也许这是一个重复,但我没有找到任何搜索:当所有元素erase(value)
被调用时,std::multiset
找到的值被删除.我能想到的唯一解决方案是:
std::multiset<int>::iterator hit(mySet.find(5));
if (hit!= mySet.end()) mySet.erase(hit);
Run Code Online (Sandbox Code Playgroud)
这没关系,但我认为可能会更好.有任何想法吗 ?
use*_*346 22
auto itr = my_multiset.find(value);
if(itr!=my_multiset.end()){
my_multiset.erase(itr);
}
Run Code Online (Sandbox Code Playgroud)
我想有一种更清洁的方法来完成同样的事情.但这可以完成工作.
小智 7
试试这个:
multiset<int> s;
s.erase(s.lower_bound(value));
Run Code Online (Sandbox Code Playgroud)
只要可以确保value
在设置中存在出口。这样可行。