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};//通过列表创建无序setunordered_multiset<int>s3{5, 5, 3, 9, 35, 8, 21, 4};//通过列表创建无序multisetunordered_multiset<int>s4{s2.begin(), s2.end()};//通过迭代器区间创建无序multisetunordered_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对象常用的成员函数
本篇完!🍗