C++ 隊列 棧 vector容器的基本操作

隊的使用:

頭文件: #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

   

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章