1.初始化
unordered_set<int> set1;//創建空set
unordered_set<int> set2(set1);//拷貝構造
unordered_set<int> set3(set1.begin(),set1.end());//迭代器構造
unordered_set<int> set4(arr,arr+5);//數組構造
unordered_set<int> set5(move(set2));//移動構造
unordered_set<int> set6 {1,2,10,10};//使用initializer_list初始化
2.常用操作
set1.find(2); //查找2,找到返回迭代器,失敗返回end()
set1.count(2); //返回指2出現的次數,0或1
set1.emplace(3); //使用轉換移動構造函數,返回pair<unordered_set<int>::iterator, bool>
set1.insert(3); //插入元素,返回pair<unordered_set<int>::iterator, bool>
set1.insert({1,2,3}); //使用initializer_list插入元素
set1.insert(set1.end(), 4);//指定插入位置,如果位置正確會減少插入時間,返回指向插入元素的迭代器
set1.insert(set2.begin(), set2.end());//使用范圍迭代器插入
set1.erase(1); //刪除操作,成功返回1,失敗返回0
set1.erase(set1.find(1)); //刪除操作,成功返回下一個pair的迭代器
set1.erase(set1.begin(), set1.end()); //刪除set1的所有元素,返回指向end的迭代器
set1.empty(); //是否為空
set1.size(); //大小
set1.bucket_count(); //返回容器中的桶數
set1.bucket_size(1); //返回1號桶中的元素數
set1.bucket(1); //1在哪一個桶
set1.load_factor(); //負載因子,返回每個桶元素的平均數,即size/float(bucket_count);
set1.max_load_factor();//返回最大負載因子
set1.max_load_factor(2);//設置最大負載因子為2,rehash(0)表示強制rehash
set1.rehash(20);//設置桶的數量為20,並且重新rehash
set1.reserve(20);//將容器中的桶數設置為最適合元素個數,如果20大於當前的bucket_count乘max_load_factor,則增加容器的bucket_count並強制重新哈希。如果20小於該值,則該功能可能無效。
unordered_set<int>::iterator it = set1.begin(); //返回指向set1首元素的迭代器
unordered_set<int>::const_iterator c_it = set1.cbegin(); //返回指向set1首元素的常量迭代器
unordered_set<int>::local_iterator it = set1.begin(1);//返回1號桶中的首元素迭代器
unordered_set<int>::const_local_iterator c_it = set1.cbegin(1);//返回1號桶中的首元素的常量迭代器
pair<unordered_set<int>::iterator, unordered_set<int>::iterator> it = set1.equal_range(1);//返回一個pair,pair里面第一個變量是lower_bound返回的迭代器,第二個迭代器是upper_bound返回的迭代器
set1.clear(); //清空
3.不常用操作
set1.emplace_hint(set1.end(),12);//提示插入的位置,如果指定的位置是真正要插入的位置,會減少插入時間
set1.swap(set2); //交換,要求兩個set的類型相同
set1.get_allocator(); //返回分配器
set1.max_size(); //返回可以容納的最大元素個數
set1.max_bucket_count(); //返回可以容納的最大桶數
unordered_set<int>::hasher hash = set1.hash_function();//返回hash函數
unordered_set<int>::key_equal eql = set1.key_eq();///返回比較元素是否相等的函數,接收兩個int參數
set1.merge(set2); //合並兩個unordered_set,C++17支持
轉載:https://blog.csdn.net/zhuikefeng/article/details/104738544