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對象常用的成員函數
本篇完!🍗