日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

STL容器汇总(二)

發布時間:2024/9/30 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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容器汇总(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。