日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

STL容器汇总(二)

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

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