c++中stack、queue、vector的用法
一、棧(stack)
- 引入標頭檔案
#include<stack>
- 常用的方法
empty() 堆疊為空則返回真
pop() 移除棧頂元素
push() 在棧頂增加元素
size() 返回棧中元素數目
top() 返回棧頂元素
3.例項程式碼
#include<iostream>
#include<stack>
using namespace std;
int main(){
//建立棧 s
stack<int> s;
//將元素壓入棧
for(int i=0;i<10;i++){
s.push(i);
}
// if(!s.empty()){
// cout<<"棧s不是空的"<<endl;
// }
cout<<"棧s中元素的個數為:"<<s.size()<<endl;
while(!s.empty()){
cout<<" "<<s.top();//獲取棧頂元素
s.pop();//彈出棧頂元素
}
cout<<endl;
if(s.empty()){
cout<<"棧s現在為空"<<endl;
}
return 0;
}
-
執行結果
二、佇列(queue)
- 引入標頭檔案
#include<queue>
- 常用方法
- empty() 判斷佇列是否為空,返回型別為bool
- size() 返回佇列中元素的個數
- front() 返回佇列隊首元素
- back() 返回佇列隊尾元素
- push(ele) 將元素ele插入到隊尾
- pop 隊首元素出隊
- 例項程式碼
#include<iostream>
#include<queue>
using namespace std;
int main(){
int ele,num,last;
queue<int> q;
for(int i=0;i<10;i++){
q.push(i);
}
if(!q.empty()){
cout<<"佇列不是空的"<<endl;
}
num=q.size();
cout<<"佇列q的長度為:"<<num<<endl;
last=q.back();
cout<<"佇列q最後一個元素:"<<last<<endl;
for(int j=0;j<q.size();j++){
ele=q.front();
cout<<ele<<" ";
q.pop();
}
cout<<endl;
if(q.empty()){
cout<<"佇列是空的"<<endl;
}
return 0;
}
- 執行結果
三、向量(vector)
- 引入標頭檔案
#include<vector>
- 常用方法
- c.clear() 移除容器中所有資料。
- c.empty() 判斷容器是否為空。
- c.erase(pos) 刪除pos位置的資料
- c.erase(beg,end) 刪除[beg,end)區間的資料
- c.front() 傳回第一個資料。
- c.insert(pos,elem) 在pos位置插入一個elem拷貝
- c.pop_back() 刪除最後一個資料。
- c.push_back(elem) 在尾部加入一個資料。
- c.resize(num) 重新設定該容器的大小
- c.size() 回容器中實際資料的個數。
- c.begin() 返回指向容器第一個元素的迭代器
- c.end() 返回指向容器最後一個元素的迭代器
- 程式碼例項
#include<iostream>
#include<vector>
using namespace std;
int main(){
//向向量v中新增元素
vector<int> v;
for(int i=0;i<10;i++){
v.push_back(i);
}
//從向量v中讀取資料
for(int i=0;i<v.size();i++){
cout<<" "<<v[i];
}
cout<<endl;
//使用迭代器遍歷資料 迭代器相當於指標
cout<<"使用迭代器獲取資料"<<endl;
vector<int>::iterator iter;
for( iter = v.begin(); iter != v.end(); iter++ )
{
cout<<" "<< *iter;
}
cout<<endl;
//刪除資料
for(vector<int>::iterator it=v.begin();it!=v.end();){
v.erase(it);
}
if(v.empty()){
cout<<"向量v為空"<<endl;
}
return 0;
}
- 執行結果
相關文章
- C++【stack/queue】用法和例子C++
- C++初階(stack+queue)C++
- ASP.net 中Queue,Stack,Hashtable,Sortlist一些簡單用法ASP.NET
- c++ 中vector 常見用法(給初學者)C++
- c++ vector用法詳解C++
- C++【vector】用法和例子C++
- C# Queue Stack SortedListC#
- STL-queue&deque&stack
- C++中vector<int>& numsC++
- C++中vector*和vector有什麼區別C++
- .NET原始碼Stack和Queue的實現原始碼
- c++中::的用法C++
- C++ sort vector<vector<int> > or vector<MyClass> 容器的排序C++排序
- Java之中的Vector的用法Java
- Stack and Queue in JavaScript(Javascript中的資料結構之棧和佇列)JavaScript資料結構佇列
- ArrayList,LinkedList,Vector,Stack之間的區別
- C++的vector容器C++
- java基礎:Vector/Stack — 原始碼分析Java原始碼
- vector——C++C++
- c++ vectorC++
- C++中& 的基本用法C++
- C++ 中特殊的用法C++
- 【C++ STL】queue和priority_queueC++
- Vector和Stack原始碼分析/List集合的總結原始碼
- C++ 容器vector的使用C++
- C++中const的用法C++
- C++ Vector fundamentalC++
- C++ STL -- vectorC++
- C++(std::vector)C++
- STL:vector用法總結
- C++ STL stackC++
- C++中clock用法C++
- java集合類——Stack棧類與Queue佇列Java佇列
- 【資料結構】棧(Stack)和佇列(Queue)資料結構佇列
- C++ queue的注意事項C++
- C++ priority_queueC++
- C++ 遍歷queueC++
- Java常用資料結構之Stack&VectorJava資料結構