gpt4 book ai didi

c++ - 从 unordered_multiset 中只删除一项

转载 作者:太空宇宙 更新时间:2023-11-03 10:38:37 25 4
gpt4 key购买 nike

我想从 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;

我希望它打印 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);

Live version

关于c++ - 从 unordered_multiset 中只删除一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51518935/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com