STL容器汇总(二)
生活随笔
收集整理的這篇文章主要介紹了
STL容器汇总(二)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、stack
先進后出
1.構造
- stack stk;?//stack采用模板類實現, stack對象的默認構造形式
- stack(const stack &stk);?//拷貝構造函數
2,存取
- stack& operator=(const stack &stk);?//重載等號操作符
- push(elem);?//向棧頂添加元素
- pop();?//從棧頂移除第一個元素
- top();?//返回棧頂元素
3.大小
- empty();?//判斷堆棧是否為空
- size();?//返回棧的大小
二、queue
1.構造&賦值&存取&大小
同stack
不同:
- back();?//返回最后一個元素
- front();?//返回第一個元素
三、list
STL中是雙向循環列表
1.構造&賦值&交換&大小&數據存取
大同小異
注意:不可用[]或者at訪問數據,原因:存儲空間不連續
2.插入&刪除&反轉
- push_back(elem);//在容器尾部加入一個元素
- pop_back();//刪除容器中最后一個元素
- push_front(elem);//在容器開頭插入一個元素
- pop_front();//從容器開頭移除第一個元素
- insert(pos,elem);//在pos位置插elem元素的拷貝,返回新數據的位置。
- insert(pos,n,elem);//在pos位置插入n個elem數據,無返回值。
- insert(pos,beg,end);//在pos位置插入[beg,end)區間的數據,無返回值。
- clear();//移除容器的所有數據
- erase(beg,end);//刪除[beg,end)區間的數據,返回下一個數據的位置。
- erase(pos);//刪除pos位置的數據,返回下一個數據的位置。
- remove(elem);//刪除容器中所有與elem值匹配的元素。
- reverse();?//反轉鏈表
四、set/multiset
元素insert時會被自動排序
set和multiset區別:
- set不允許容器中有重復的元素
- multiset允許容器中有重復的元素
- set插入數據的同時會返回插入結果,表示插入是否成功
1.查找&統計
- find(key);?//查找key是否存在,若存在,返回該鍵的元素的迭代器;若不存在,返回set.end();
- count(key);?//統計key的元素個數,只有0或1
對組:
?
- 成對出現的數據,利用對組可以返回兩個數據
兩種創建方式:
- pair p ( value1, value2 );
- pair p = make_pair( value1, value2 );
五、map/multimap
- map中所有元素都是pair
- pair中第一個元素為key(鍵值),起到索引作用,第二個元素為value(實值)
- 所有元素都會根據元素的鍵值自動排序
1.查找&統計
- find(key);?//查找key是否存在,若存在,返回該鍵的元素的迭代器;若不存在,返回set.end();
- count(key);?//統計key的元素個數
總結
以上是生活随笔為你收集整理的STL容器汇总(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: STL容器汇总(一)
- 下一篇: X小时速通《物联网导论》