STL常用操作 multiset

2021-10-03 15:55:03 字數 2197 閱讀 8286

multisetset1;	//建立空set

multisetset2(set1); //拷貝構造

multisetset3(set1.begin(), set1.end()); //迭代器構造

multisetset4(arr, arr+5); //陣列構造

multisetset5(move(set2)); //移動構造

multisetset6 ;//使用initializer_list初始化

multiset> set7; //建立降序排序的set

set1.find(2);    //查詢2,返回第乙個找到的迭代器,失敗返回end()

set1.count(2); //返回2出現的次數,0或其他

set1.emplace(5); //插入5,返回指向插入元素的迭代器,不支援像insert那樣一次插入多個元素

set1.insert(2); //插入元素2,返回指向插入元素的迭代器

set1.insert(set1.end(),2);//指定插入位置,如果位置正確會減少插入時間

set1.insert(set2.begin(), set2.end());//使用範圍迭代器插入

set1.insert(); //插入initializer_list

set1.erase(2); //刪除操作,成功返回刪除的元素個數,失敗返回0

set1.erase(set1.find(2)); //刪除第乙個找到的元素,成功返回下乙個元素的迭代器

set1.erase(set1.begin(), set1.end()); //刪除set1的所有元素,返回指向end迭代器

set1.empty(); //是否為空

set1.size(); //大小

multiset::iterator it = set1.begin(); //返回指向set1首元素的迭代器

multiset::const_iterator c_it = set1.cbegin(); //返回指向set1首元素的常量迭代器

multiset::reverse_iterator r_it = set1.rbegin(); //返回乙個逆序迭代器

multiset::const_reverse_iterator cr_it = set1.crbegin(); //返回乙個逆序迭代器

multiset::iterator it = set1.lower_bound(2); //返回鍵值大於等於給定元素的第乙個元素

multiset::iterator it = set1.upper_bound(2); //返回鍵值大於給定元素的第乙個元素

pair::iterator, multiset::iterator> it = set1.equal_range(2);//返回乙個pair,pair裡面第乙個變數是lower_bound返回的迭代器,第二個迭代器是upper_bound返回的迭代器

set1.clear(); //清空

set1.emplace_hint(set1.end(),12);//提示插入的位置,如果指定的位置是真正要插入的位置,會減少插入時間

set1.swap(set2); //交換,要求兩個set的型別相同

set1.get_allocator(); //返回分配器

set1.max_size(); //返回可以容納的最大元素個數

multiset::key_compare cmp = set1.key_comp();//返回set1比較值大小的函式,接收兩個值作為引數,《則返回true,同value_comp()

multiset::value_compare cmp1 = set1.value_comp();//返回set1比較值大小的函式,接收兩個值作為引數,《則返回true

set1.merge(set2); //合併兩個set,c++17支援

for(multiset::iterator it = set1.begin(); it != set1.end(); ++it) cout << *it << " ";
for(int x : set1) cout << x << " ";

STL學習之set與multiset操作練習

stl set 操作.cpp 定義控制台應用程式的入口點。乙個集合容器 包含元素唯一 不可以直接訪問元素 採用紅黑樹變體 在插入和刪除上比vector快 wangsl include stdafx.h using namespace std define crt secure no warnings...

C STL常用操作之multiset篇

multiset和set大致上是一樣的,都是集合。set詳細介紹見 multiset和set不同的點在於multiset允許存在重複的元素。我們可以看出,multiset裡面,確實是允許重複元素出現的。而multiset裡面的erase函式對於指定的key值來說,是刪除所有的等於key值的元素。如上...

STL容器 multiset的學習

includeusing namespace std intmain begin 和end p m.begin cout 第乙個元素 p p cout 最後乙個元素 p printf 元素的個數 d n m.size 統計容器中關鍵字的個數 int i m.count 1 printf 元素1的個數...