C++中STL的容器適配器以及各容器的方法


一.容器適配器

1.stack

需要引入的頭文件:

#include<stack>

初始化方式:

stack<int> stk;

成員函數介紹:

stk.empty();    //判斷stack是否為空,為空返回true,否則返回false
stk.size();      //判斷stack中元素的個數
stk.pop();      //刪除棧頂元素,但不返回其值
stk.top();      //返回棧頂元素的值,但不刪除此元素
stk.push(item)  //在棧頂壓入新元素item

2.queue

需要引入的頭文件:

#include<queue>;

初始化方式:

queue<int> q;

成員函數介紹:

q.empty();         //判斷隊列是否為空
q.size();          //返回隊列長度
q.push(item);       //對於queue,在隊尾壓入一個新元素
                   //對於priority_queue,在基於優先級的適當位置插入新元素
q.front();          //返回隊首元素的值,但不刪除該元素
q.back();           //返回隊尾元素的值,但不刪除該元素

q.top();             //返回具有最高優先級的元素值,但不刪除該元素

二、常用容器用法介紹

1.vector

需要引入的頭文件:

#include<vector>
using namespace std;

初始化方式:

vector<int>obj;

成員函數介紹:

push_back     在數組的最后添加一個數據
pop_back      去掉數組的最后一個數據
at            得到編號的位置數據
begin         得到數組頭的指針
end           得到數組的最后一個單元+1的指針
front         得到數組頭的引用
back          得到數組的最后一個單元的引用
max_size      得到數組最大可以是多大
capacity      當前數組分配的大小
size          當前使用數據的大小
resize        改變當前使用數據的大小
reserve       改變當前vector所分配空間的大小
erase         刪除指針指向的數據項
clear         清空當前的vector
rbegin        將vector反轉后的開始指針返回(其實就是原來的end-1)
rend          將vector反轉構的結束指針返回(其實就是原來的begin-1)
empty         判斷vector是否為空
swap          與另一個vector交換數據

實際上vector是一個動態數組,這樣就無需在使用前聲明數組的大小,在使用中動態分配。

二維數組的定義:

int N=5, M=6; 
    vector<vector<int> > obj(N); //定義二維動態數組大小5行 
    for(int i =0; i< obj.size(); i++)//動態二維數組為5行6列,值全為0 
    { 
        obj[i].resize(M); 
    } 

2.deque

所謂的deque是”double ended queue”的縮寫,雙端隊列不論在尾部或頭部插入元素,都十分迅速。而在中間插入元素則會比較費時,因為必須移動中間其他的元素。雙端隊列是一種隨機訪問的數據類型,提供了在序列兩端快速插入和刪除操作的功能,它可以在需要的時候改變自身大小,完成了標准的C++數據結構中隊列的所有功能。

需要引入的頭文件:

#include<deque>

初始化方式:

deque<int> deq;

成員函數介紹:

deq[ ]:用來訪問雙向隊列中單個的元素。
deq.front():返回第一個元素的引用。
deq.back():返回最后一個元素的引用。
deq.push_front(x):把元素x插入到雙向隊列的頭部。
deq.pop_front():彈出雙向隊列的第一個元素。
deq.push_back(x):把元素x插入到雙向隊列的尾部。
deq.pop_back():彈出雙向隊列的最后一個元素。

3.list

需要引入的頭文件:

#include <list>

初始化方式:

 list<int>lst1;          //創建空list

 list<int> lst2(5);       //創建含有5個元素的list

 list<int>lst3(3,2);  //創建含有3個元素的list

 list<int>lst4(lst2);    //使用lst2初始化lst4

 list<int>lst5(lst2.begin(),lst2.end());  //同lst4

成員函數介紹:

l.assign()    給list賦值
l.back()      返回最后一個元素
l.begin()     返回指向第一個元素的迭代器
l.clear()     刪除所有元素
l.empty()     判斷list是否為空
l.end()       返回末尾的迭代器
l.erase()     刪除一個元素
l.front()     返回第一個元素
l.insert()    插入一個元素到list中
l.max_size()  返回list能容納的最大元素數量
l.merge()     合並兩個list
l.pop_back()  刪除最后一個元素
l.pop_front() 刪除第一個元素
l.push_back() 在list的末尾添加一個元素 
l.push_front() 在list的頭部添加一個元素 
l.resize()    改變list的大小
l.reverse()   把list的元素倒轉 
l.size()      返回list中的元素個數 
l.sort()      給list排序 
l.splice()    合並兩個list 
l.swap()      交換兩個list 
l.unique()   刪除list中相鄰重復的元素

3.map

需要引入的頭文件:

#include<map>

初始化方式:

map<int,string>  ID_Name;


map<int, string> ID_Name = {
                { 2015, "Jim" },
                { 2016, "Tom" },
                { 2017, "Bob" } };

成員函數介紹:

     begin()         返回指向map頭部的迭代器

     clear()        刪除所有元素

     count()         返回指定元素出現的次數

     empty()         如果map為空則返回true

     end()           返回指向map末尾的迭代器

     equal_range()   返回特殊條目的迭代器對

     erase()         刪除一個元素

     find()          查找一個元素

     get_allocator() 返回map的配置器

     insert()        插入元素

     key_comp()      返回比較元素key的函數

     lower_bound()   返回鍵值>=給定元素的第一個位置

     max_size()      返回可以容納的最大元素個數

     rbegin()        返回一個指向map尾部的逆向迭代器

     rend()          返回一個指向map頭部的逆向迭代器

     size()          返回map中元素的個數

     swap()           交換兩個map

     upper_bound()    返回鍵值>給定元素的第一個位置

     value_comp()     返回比較元素value的函數

4.set

1. begin()--返回指向第一個元素的迭代器

2. clear()--清除所有元素

3. count()--返回某個值元素的個數

4. empty()--如果集合為空,返回true

5. end()--返回指向最后一個元素的迭代器

6. equal_range()--返回集合中與給定值相等的上下限的兩個迭代器

7. erase()--刪除集合中的元素

8. find()--返回一個指向被查找到元素的迭代器

9. get_allocator()--返回集合的分配器

10. insert()--在集合中插入元素

11. lower_bound()--返回指向大於(或等於)某值的第一個元素的迭代器

12. key_comp()--返回一個用於元素間值比較的函數

13. max_size()--返回集合能容納的元素的最大限值

14. rbegin()--返回指向集合中最后一個元素的反向迭代器

15. rend()--返回指向集合中第一個元素的反向迭代器

16. size()--集合中元素的數目

17. swap()--交換兩個集合變量

18. upper_bound()--返回大於某個值元素的迭代器

19. value_comp()--返回一個用於比較元素間的值的函數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM