STL - 經常使用函數總結

參考連接: C++ STL-Multiset.insert()函數html

STL - 經常使用函數總結 數組



 文章目錄ide

 STL - 經常使用函數總結1、vector2、string3、queue4、priority_queue(默認大根堆)5、stack6、deque(雙端隊列)7、set、map、muiltiset、multimap8、unordered_map/unordered_set/unordered_multimap/unordered_multiset函數

  

 


 

1、vector ui


    

     

      

       

        常spa

       

       

        用orm

       

       

        函htm

       

       

        數排序

       

       

        :隊列

       

      

      

       經常使用函數:

      

     

    經常使用函數: 

#include<vector>

vector<Type> V;

V.size();

V.empty();

V.clear();

V.front(),V.back();

V.push_back(),V.pop_back()

V.begin(),V.end()

reverse(V.begin(),V.end());   //翻轉數組

 


    

     

      

       

        訪

       

       

        問

       

       

        方

       

       

        式

       

       

        與

       

       

        正

       

       

        常

       

       

        數

       

       

        組

       

       

        訪

       

       

        問

       

       

        相

       

       

        似

       

       

        ,

       

       

       

        同

       

       

        時

       

       

        支

       

       

        持

       

       

        直

       

       

        接

       

       

        比

       

       

        較

       

       

        運

       

       

        算

       

       

        (

       

       

        按

       

       

        字

       

       

        典

       

       

        序

       

       

        )

       

       

        ,

       

       

        如

       

       

        :

       

      

      

       訪問方式與正常數組訪問類似,\\同時支持直接比較運算(按字典序),如:

      

     

    訪問方式與正常數組訪問類似,同時支持直接比較運算(按字典序),如: 

vector<int> V1(4,3),V2(5,4);  //V1:3 3 3 3,V2:4 4 4 4 4,因此V1<V2

 


    

     

      

       

        要

       

       

        注

       

       

        意

       

       

        盡

       

       

        量

       

       

        減

       

       

        少

       

       

        內

       

       

        存

       

       

        空

       

       

        間

       

       

        的

       

       

        申

       

       

        請

       

       

        次

       

       

        數

       

       

        ,

       

       

        比

       

       

        較

       

       

        耗

       

       

        時

       

       

        。

       

      

      

       要注意儘可能減小內存空間的申請次數,比較耗時。

      

     

    要注意儘可能減小內存空間的申請次數,比較耗時。 

2、string 


    

     

      

       

        常

       

       

        用

       

       

        函

       

       

        數

       

       

        :

       

      

      

       經常使用函數:

      

     

    經常使用函數: 

#include<string>

string S;

S.substr(1,2);  //從下標1開始,長度爲2的子串

S.substr(1);    //下標從1開始,直到尾部的子串

S.c_str();      //返回爲C語言字符數組的首地址

S.size();

S.emtpy();

S.clear(); 

S.find(sub,pos);  //從S的pos位置開始,查找sub子串,若存在返回第一次出現的位置,不然返回-1

reverse(S.begin(),S.end());   //翻轉字符串

 

3、queue 


    

     

      

       

        常

       

       

        用

       

       

        函

       

       

        數

       

       

        :

       

      

      

       經常使用函數:

      

     

    經常使用函數: 

#include<queue>

queue<Type> Q;    

Q.size();

Q.emtpy();

Q.front();

Q.back();

Q.push();  //隊尾插入

Q.pop();   //隊頭彈出

Q = queue<Type>();   //清空隊列。  注意,queue沒有clear函數

 

4、priority_queue(默認大根堆) 

#include<queue>

#include<vector>

priority_queue<Type> Q;    //這樣定義默認小根堆

priority_queue<int,vector<int>,greater<int>> Q;   //這樣定義爲大根堆

                                                //或者元素取負號入堆  

Q.size();

Q.emtpy();

Q.push();  //隊尾插入

Q.pop();   //隊頭彈出

Q.top();   //堆頂元素

Q = priority_queue<Type>();   //清空隊列。  priority_queue沒有clear函數

 

5、stack 


    

     

      

       

        常

       

       

        用

       

       

        函

       

       

        數

       

       

        :

       

      

      

       經常使用函數:

      

     

    經常使用函數: 

#include<stack>

stack<Type> S;    

S.size();

S.emtpy();

S.top();  //棧頂元素

S.pop();   //彈出棧頂

S.push();  //棧頂插入

S = stack<Type>();   //清空棧。  stack沒有clear函數

 

6、deque(雙端隊列) 


    

     

      

       

        常

       

       

        用

       

       

        函

       

       

        數

       

       

        :

       

      

      

       經常使用函數:

      

     

    經常使用函數: 

#include<deque>

deque<Type> deq;    

deq.size();

deq.emtpy();

deq.front()/deq.back();

deq.push_back()/deq.pop_back();

deq.push_front()/deq.pop_front();

deq.clear();

deq.begin();deq.end();

deq[];

 


    

     

      

       

        缺

       

       

        點

       

       

        :

       

       

        速

       

       

        度

       

       

        慢

       

      

      

       缺點:速度慢

      

     

    缺點:速度慢 

7、set、map、muiltiset、multimap 


    

     

      

       

        基

       

       

        於

       

       

        平

       

       

        衡

       

       

        二

       

       

        叉

       

       

        樹

       

       

        (

       

       

        紅

       

       

        黑

       

       

        樹

       

       

        )

       

       

        ,

       

       

        動

       

       

        態

       

       

        維

       

       

        護

       

       

        有

       

       

        序

       

       

        序

       

       

        列

       

       

        。

       

       

       

        基

       

       

        本

       

       

        上

       

       

        所

       

       

        有

       

       

        操

       

       

        做

       

       

        都

       

       

        是

       

       

        O

       

       

        (

       

       

        l

       

       

        o

       

       

        g

       

       

        n

       

       

        )

       

       

        的

       

       

        ,

       

       

        除

       

       

        了

       

       

        s

       

       

        i

       

       

        z

       

       

        e

       

       

        ,

       

       

        e

       

       

        m

       

       

        p

       

       

        t

       

       

        y

       

       

        ,

       

       

        c

       

       

        l

       

       

        e

       

       

        a

       

       

        r

       

       

        函

       

       

        數

       

       

       

        常

       

       

        用

       

       

        函

       

       

        數

       

       

        :

       

      

      

       基於平衡二叉樹(紅黑樹),動態維護有序序列。\\基本上全部操做都是O(logn)的,除了size,empty,clear函數\\經常使用函數:

      

     

    基於平衡二叉樹(紅黑樹),動態維護有序序列。基本上全部操做都是O(logn)的,除了size,empty,clear函數經常使用函數: 

#include<set>

#include<map>

set<Type> s;           //不能有重複元素

multiset<Type> ms;  //能夠有重複元素

map<Type> mp;        //不能有重複元素

multimap<Type> mmp; //能夠有重複元素

    size();

    emtpy();

    clear();

    begin()/end();  //--,++ 前驅與後繼,O(logn)

    

//set/multiset

    insert();   //插入一個元素,O(logn)

    find();     //查找一個元素。不存在就返回end();

    count();    //返回某個元素的個數

    erase();

    // erase(x)   刪除全部等於x的元素

    // erase(iterater)  刪除這個迭代器

    lower_bound()/upper_bound();

    

//map/multimap

    insert();  //插入的是一個pair

    erase();   //刪除的是pair或一個迭代器

    find();    //查找一個元素。不存在就返回end();

    mp[]/mmp[]; //看成數組使用,時間複雜度是O(logn)的

    lower_bound()/upper_bound();

    

 

8、unordered_map/unordered_set/unordered_multimap/unordered_multiset 


    

     

      

       

        所

       

       

        有

       

       

        操

       

       

        做

       

       

        與

       

       

        七

       

       

        類

       

       

        似

       

       

        ,

       

       

        且

       

       

        增

       

       

        刪

       

       

        改

       

       

        查

       

       

        的

       

       

        時

       

       

        間

       

       

        復

       

       

        雜

       

       

        度

       

       

        是

       

       

        O

       

       

        (

       

       

        1

       

       

        )

       

       

        的

       

       

        ,

       

       

        但

       

       

        是

       

       

        不

       

       

        支

       

       

        持

       

       

        l

       

       

        o

       

       

        w

       

       

        e

       

       

        r

       

       

        _

       

       

        b

       

       

        o

       

       

        u

       

       

        n

       

       

        d

       

       

        和

       

       

        u

       

       

        p

       

       

        p

       

       

        e

       

       

        r

       

       

        _

       

       

        b

       

       

        o

       

       

        u

       

       

        n

       

       

        d

       

       

        即

       

       

        −

       

       

        −

       

       

        ,

       

       

        +

       

       

        +

       

       

        。

       

       

       

        即

       

       

        與

       

       

        排

       

       

        序

       

       

        有

       

       

        關

       

       

        的

       

       

        所

       

       

        有

       

       

        操

       

       

        做

       

       

        是

       

       

        不

       

       

        支

       

       

        持

       

       

        的

       

       

        。

       

      

      

       全部操做與七相似,且增刪改查的時間複雜度是O(1)的,可是不支持lower\_bound和upper\_bound即--,++。\\即與排序有關的全部操做是不支持的。

      

     

    全部操做與七相似,且增刪改查的時間複雜度是O(1)的,可是不支持lower_bound和upper_bound即−−,++。即與排序有關的全部操做是不支持的。

相關文章
相關標籤/搜索