STL系列-------stack和queue使用說明

stack

1、基本概念

stack是一種先進後出(First In Last Out,FILO)的數據結構,它只有一個出口
在這裏插入圖片描述
棧容器符合先進後出
不允許有遍歷行爲
可以判斷容器是否爲空
可以返回元素個數

2、常用接口

(1)構造函數

stack採用模板類實現,stack對象的默認構造形式

stack<T> stk;

拷貝構造函數

stack(const stack &stk)

(2)賦值操作

重載等號操作符

stack&  operator=(const stack  &stk)

向棧頂添加元素

push(elem);

從棧頂移除第一個元素

pop();

返回棧頂元素

top();

(3)大小操作

判斷堆棧是否爲空

empty()

返回棧的大小

size()

具體使用方法如下

#include<iostream>
using namespace std;
#include<stack>
void test01()
{
 stack<int> s;
 s.push(10);
 s.push(20);
 s.push(30);
 s.push(40);
 cout<<"棧的大小爲:"<<s.size()<<endl;
 while(!s.empty())
 {
  cout<<s.top()<<endl;
  s.pop();
 }
 cout<<"棧的大小爲:"<<s.size()<<endl;
 } 
int main()
{
 test01();
 } 

queue

1、基本概念

queue是一種先進先出(First In First Out,FIFO)的數據結構,它有兩個出口
在這裏插入圖片描述
隊列容器允許從一端新增元素,從另一端移除元素

隊列中只有隊頭和隊尾纔可以被外界使用,因此隊列不允許有遍歷行爲

隊列中進數據稱爲-入隊 push

隊列中出數據稱爲…出隊pop

2、常用接口

(1)構造函數

queue採用模板類實現,queue對象的默認構造形式

queue<T>que;

拷貝構造函數

queue(const   queue  &que);

(2)賦值操作

重載等號操作符

queue&operator=const queue&que);

(3)數據存取

往隊尾添加元素

push(elem);

從隊頭移除第一個元素

pop();

返回最後一個元素

back();

返回第一個元素

front();

(4)大小操作

判斷堆棧是否爲空

empty();

返回棧的大小

size();

實例

#include<iostream>
using namespace std;
#include<queue>
class Person
{
public:
    Person(string name,int age)
 {
  this->m_Age=age;
  this->m_Name=name;
 } 
 string m_Name;
 int m_Age;
};
void test01()
{
 queue<Person> q;
 Person p1("a",18);
 Person p2("b",20);
 Person p3("c",30);
 Person p4("d",40);
 q.push(p1);
 q.push(p2);
 q.push(p3);
 q.push(p4);
 cout<<"棧的大小爲:"<<q.size()<<endl;
 while(!q.empty())
 {
  cout<<"隊頭的姓名:"<<q.front().m_Name<<"年齡爲:"<<q.front().m_Age<<endl;
  cout<<"隊尾的姓名:"<<q.back().m_Name<<"年齡爲:"<<q.back().m_Age<<endl;
  cout<<endl;
  q.pop();
 }
 cout<<"棧的大小爲:"<<q.size()<<endl;
 } 
int main()
{
 test01();
 }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章