📅  最后修改于: 2023-12-03 15:13:55.956000             🧑  作者: Mango
multiset
是 C++ STL 提供的一个支持多个相同关键字的有序元素集合。它和 set
的用法类似,但是允许多个相同关键字的元素存在于集合中。
insert()
函数是 multiset
中的一个成员函数,用于将元素插入到集合中。如果该元素在集合中已经存在,insert()
函数会将其插入到相同关键字元素的末尾。
insert()
函数有以下两种基本用法:
#include <iostream>
#include <set>
using namespace std;
int main() {
multiset<int> ms;
ms.insert(1);
ms.insert(2);
ms.insert(3);
ms.insert(3); // 多次插入相同元素
ms.insert(4);
// 输出集合中的元素
for (auto it = ms.begin(); it != ms.end(); ++it) {
cout << *it << " ";
}
cout << endl;
return 0;
}
上述代码中,首先定义了一个 multiset
,然后使用 insert()
函数分别插入了 1,2,3,3,4 五个元素。其中,3 被插入了两次,分别在集合的第三个位置和第四个位置。最后使用迭代器输出集合中的元素。
输出结果如下:
1 2 3 3 4
#include <iostream>
#include <set>
using namespace std;
int main() {
multiset<int> ms1{1, 2, 3};
multiset<int> ms2{4, 5};
ms1.insert(ms2.begin(), ms2.end());
// 输出集合中的元素
for (auto it = ms1.begin(); it != ms1.end(); ++it) {
cout << *it << " ";
}
cout << endl;
return 0;
}
上述代码中,首先定义了两个 multiset
,其中 ms1
包含了 1,2,3 三个元素,ms2
包含了 4,5 两个元素。然后使用 insert()
函数将 ms2
中的元素插入到 ms1
中。
输出结果如下:
1 2 3 4 5
在 multiset 中,insert()
函数的时间复杂度为 O(log n),其中 n 表示集合中元素的个数。
multiset
中的元素是有序的。使用 insert()
函数插入的元素会被自动排序。insert()
函数仅适用于关键字类型确定的 multiset
。如果使用了自定义关键字类型,需要重载 <
运算符进行排序。