C++ multiset与set的核心区别在于multiset允许重复元素而set不允许,multiset适用于需自动排序且容纳重复值的场景,如统计频次或维护有序序列。

C++
std::multiset
说起
multiset
set
set
multiset
它的主要特点是:
Compare
set
multiset
我们来瞧瞧它的一些基本操作:
立即学习“C++免费学习笔记(深入)”;
#include <iostream>
#include <set> // multiset也在这个头文件里
#include <string>
#include <vector>
#include <algorithm> // for std::count
int main() {
std::multiset<int> myMultiset;
// 插入元素
myMultiset.insert(10);
myMultiset.insert(30);
myMultiset.insert(20);
myMultiset.insert(10); // 允许重复
myMultiset.insert(40);
myMultiset.insert(30); // 再次重复
std::cout << "Multiset elements (sorted): ";
for (int val : myMultiset) {
std::cout << val << " ";
}
std::cout << std::endl; // 输出: 10 10 20 30 30 40
// 查找元素
auto it = myMultiset.find(30);
if (it != myMultiset.end()) {
std::cout << "Found 30 at least once." << std::endl;
}
// 统计元素出现次数
std::cout << "Count of 10: " << myMultiset.count(10) << std::endl; // 输出: 2
std::cout << "Count of 30: " << myMultiset.count(30) << std::endl; // 输出: 2
std::cout << "Count of 50: " << myMultiset.count(50) << std::endl; // 输出: 0
// 删除元素
// myMultiset.erase(10); // 这会删除所有值为10的元素
// std::cout << "After erasing all 10s: ";
// for (int val : myMultiset) {
// std::cout << val << " ";
// }
// std::cout << std::endl; // 输出: 20 30 30 40
// 如果只想删除一个特定元素,需要使用迭代器
auto it_to_erase = myMultiset.find(10);
if (it_to_erase != myMultiset.end()) {
myMultiset.erase(it_to_erase); // 只删除了一个10
}
std::cout << "After erasing one 10: ";
for (int val : myMultiset) {
std::cout << val << " ";
}
std::cout << std::endl; // 输出: 10 20 30 30 40 (少了一个10)
// 范围查找
auto range = myMultiset.equal_range(30);
std::cout << "Elements equal to 30: ";
for (auto iter = range.first; iter != range.second; ++iter) {
std::cout << *iter << " ";
}
std::cout << std::endl; // 输出: 30 30
return 0;
}在使用
multiset
erase(value)
vector
erase
当我第一次接触C++的STL容器时,
set
multiset
以上就是C++ multiset容器 允许重复元素集合的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号