Edu*_*yan 1 c++ stl set erase unordered-multiset
我想删除一个特定元素std::unordered_multiset,但是当我尝试使用erase函数时,它会消除所有项目,无论它们有多少.
例如:
std::unordered_multiset<int> M;
M.insert(1);
M.insert(1);
M.insert(1);
std::cout<<M.count(1)<<std::endl;
M.erase(1);
std::cout << M.count(1) << std::endl;
Run Code Online (Sandbox Code Playgroud)
我希望这打印3然后2.但它打印3然后0.所以如何只删除一个项目?
您可以使用另一个erase重载:
std::unordered_multiset<int> s { 1, 2, 2, 3, 3, 3 };
const auto it = s.find(2);
if (it != s.end())
s.erase(it);
Run Code Online (Sandbox Code Playgroud)