1.1 定义及初始化🍗
下面列出常用的初始化方式
#include <unordered_set>
#include <iostream>
using namespace std;
//输出s中的所有元素
template<typename T>
void Show(const T& s)
{
for (auto& x : s)
cout << x << " ";
cout << endl;
}
int main()
{
unordered_set<int>s1;//定义一个空的无序set
unordered_set<int>s2{5,5,3,9,35,8,21,4};//通过列表创建无序set
unordered_multiset<int>s3{5, 5, 3, 9, 35, 8, 21, 4};//通过列表创建无序multiset
unordered_multiset<int>s4{s2.begin(), s2.end()};//通过迭代器区间创建无序multiset
unordered_multiset<int>s5 = s3;//通过s3构造s5
cout << "s1:"; Show(s1);
cout << "s2:"; Show(s2);
cout << "s3:"; Show(s3);
cout << "s4:"; Show(s4);
cout << "s5:"; Show(s5);
return 0;
}
说明:
s2不能存放相同的元素,s3可以存放相同的元素。
不能对数据的存放顺序做任何假设。初始化的顺序和输出的顺序没有任何关联。特别是s5和s3的顺序也不相同。
1.2 添加或删除元素🍗
通过insert函数插入数据。通过erase删除元素。下面示例演示基本用法,insert和erase更详细的用法请参考后面函数详细介绍。
//输出s中的所有元素
template<typename T>
void Show(const T& s)
{
for (auto& x : s)
cout << x << " ";
cout << endl;
}
int main()
{
vector<int>v{9, 12, 34, 56}; //创建一个向量v
unordered_set<int>s1;//定义一个空的无序set
s1.insert(3);//插入当个元素
s1.insert({5,2,1,9});//插入一个列表(多个元素)
s1.insert(v.begin(),v.end());//插入一个迭代器区间(多个元素)
cout << "s1:"; Show(s1);
s1.erase(1);//删除元素1
cout << "删除1后" << endl;
cout << "s1:"; Show(s1);
return 0;
}
1.3 常用成员函数 🍗
下面列举unordered_set和unordered_multiset对象常用的成员函数
本篇完!🍗