隊的使用:
頭文件: #include <queue>
1.一般隊列
queue<int> q1;
queue<double> q2;
queue 的基本操作有:
- 入隊,如例:q.push(x); 將x 接到隊列的末端。
- 出隊,如例:q.pop(); 彈出隊列的第一個元素,注意,並不會返回被彈出元素的值。
- 訪問隊首元素,如例:q.front(),即最早被壓入隊列的元素。
- 訪問隊尾元素,如例:q.back(),即最後被壓入隊列的元素。
- 判斷隊列空,如例:q.empty(),當隊列空時,返回true。
- 訪問隊列中的元素個數,如例:q.size()
2.優先隊列(默認降序隊列)
定義:priority_queue<Type, Container, Functional>
priority_queue <int> Q; (默認降序隊列)
//升序隊列
priority_queue <int,vector<int>,greater<int> > q;
//降序隊列
priority_queue <int,vector<int>,less<int> >q;
其操作和隊列基本操作相同:
- top 訪問隊頭元素
- empty 隊列是否爲空
- size 返回隊列內元素個數
- push 插入元素到隊尾 (並排序)
- emplace 原地構造一個元素並插入隊列
- pop 彈出隊頭元素
- swap 交換內容
棧的使用:
頭文件: #include <stack>
stack<int>s1;
stack<string>s2;
stack的基本操作有:
- 入棧:如s.push(x);
- 出棧:如 s.pop().注意:出棧操作只是刪除棧頂的元素,並不返回該元素。
- 訪問棧頂:如s.top();
- 判斷棧空:如s.empty().當棧空時返回true。
- 訪問棧中的元素個數,如s.size();
Vector的使用:
頭文件: #include <vector>
定義和初始化:
- vector< typeName > v1; //默認v1爲空,故以下的賦值是錯誤的v1[0]=5;
- vector<typeName>v2(v1); 或vector<typeName> v2(v1.begin(), v1.end()); 或v2=v1; / /v2是v1的一個副本,若v1.size()>v2.size()則賦值後v2.size()被擴充爲v1.size()。
- vector< typeName > v3(n,i);//v3包括n個值爲i的typeName類型元素
- vector< typeName > v4(n); //v4含有n個值爲0的元素
- int a[4]={0,1,2,3,3}; vector<int> v5(a,a+5); //v5的size爲5,v5被初始化爲a的5個值。後一個指針要指向將被拷貝的末元素的下一位置。
vector對象最重要的幾種操作:
- v.push_back(t) 在容器的最後加入一個值爲t的數據,容器的size變大。
- v.pop_back() 刪除容器的末元素,並不返回該元素。
- v.size() 返回容器中數據的個數,size返回對應vector類定義的size_type的值。v.resize(2*v.size)或v.resize(2*v.size, 99) 將v的容量翻倍(並把新元素的值初始化爲99)
- v.empty() 推斷vector是否爲空
- v[n] 返回v中位置爲n的元素 !!!不可直接賦值,下標只能用於獲取已存在的元素
- v.insert(pointer,number, content) 向v中pointer指向的位置插入number個content的內容。
- v. insert(pointer, content) 例:v.insert(pointer,a[2],a[4])將a[2]到a[4]三個元素插入。
- v.erase(pointer1,pointer2) 刪除pointer1到pointer2中間(包含pointer1所指)的元素。
- v1==v2 推斷v1與v2是否相等。
- !=、<、<=、>、>= 保持這些操作符慣有含義。
- p=v1.begin( ); p初始值指向v1的第一個元素。*p取所指向元素的值。
- p=v1.end( ); p指向v1的最後一個元素的下一位置。
- v.clear() 刪除容器中的全部元素
文獻參考:http://www.cnblogs.com/mengfanrong/p/3770971.html
文獻參考:https://www.cnblogs.com/hdk1993/p/5809161.html
文獻參考:https://blog.csdn.net/weixin_36888577/article/details/79937886