程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> c++中stl容器的常用示例,stl容器示例

c++中stl容器的常用示例,stl容器示例

編輯:C++入門知識

c++中stl容器的常用示例,stl容器示例


1、 set(集合)——包含了經過排序了的數據,這些數據的值(value)必須是唯一的。   

    也就是說輸入set容器後得到數據,會去重並排序。
    s.insert()插入一個元素
    s.begin() s.end()分別返回首尾指針
    s.clear() 清空集合
   遍歷需要利用迭代器set<類型>::iterator 變量名 ;

 

 

 

2、stringstream(容器)—— 可以將放入其中的string串按空格分隔成單詞(感覺就是一個過濾的)

 

 

 

3、vector(不定長數組)——不需要定義初始長度的數組
    v.push_back()向尾部插入一個元素
    v.size()返回數組大小
    v.pop_back()刪除最後一個元素
    v.insert(v[0]+i,a)在第i+1個元素後插入元素a
   常用的就這幾個成員函數,看看粘的網上的介紹:

 基本操作

(1)頭文件#include<vector>.

(2)創建vector對象,vector<int> vec;

(3)尾部插入數字:vec.push_back(a);

(4)使用下標訪問元素,cout<<vec[0]<<endl;記住下標是從0開始的。

(5)使用迭代器訪問元素.

vector<int>::iterator it;for(it=vec.begin();it!=vec.end();it++) cout<<*it<<endl;

(6)插入元素:    vec.insert(vec.begin()+i,a);在第i+1個元素前面插入a;

(7)刪除元素:    vec.erase(vec.begin()+2);刪除第3個元素

vec.erase(vec.begin()+i,vec.end()+j);刪除區間[i,j-1];區間從0開始

(8)向量大小:vec.size();

(9)清空:vec.clear();

 

 

 

 

4、map(映射)——map就是從鍵(key)到值(value)的映射。例如可以這樣用:
先定義map<string,int> m;    賦值m["green"]=8 。看起來就是數組的高級版,可以改變下標的表示。
當遇到讓我們計算 一篇文章中某單詞出現的次數時,(如果它只提問一次單詞a出現的次數,那麼我們直接遍歷一次,但是如果它問了很多次時,總不能一遍遍遍歷吧,會超時的)這時候就用到映射了。
直接看示例:

 

 

 

 

5、queue(隊列)——“先進先出”的一種數據結構,感覺這些容器就是把數組改造,添加一些成員函數,使它用起來更方便些,理解的時候可以對照如果用數組實現這樣的功能有多麻煩。
其本操作:
1、定義:queue<int> q;
2、  q.push(a) 將元素a加入隊列    
        q.front()訪問首元素      
        q.back() 訪問尾元素 
        q.pop() 刪除首元素 
        q.size()返回元素個數
       q.empty()判斷隊列是否為空 

 

 

 

 

6、stack(棧)——“先進後出”的一種數據結構,和隊列類比看。 
其本操作:
1、定義:stack<int> s;
2、  s.push(a) 將元素a壓入棧    
        s.top()訪問棧頂元素      
        s.pop() 刪除棧頂元素 
        s.size()返回元素個數
        s.empty()判斷棧是否為空 

 

 

 

待續…… 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved