網站首頁 編程語言 正文
文章目錄
- 一、Stack容器
- 1. 基本概念
- 2. 常用接口
- 構造函數、賦值操作、數據存取、大小操作
- 二、Queue容器
- 1. 基本概念
- 2. 常用接口
- 構造函數、賦值操作、數據存取、大小操作
- 三、示例代碼
- stack.cpp
- queue.cpp
一、Stack容器
1. 基本概念
Stack是—釋先進后出(First In Last Out,FILO)的數據結構,它只有一個出口
棧中只有頂端的元素才可以被外界使用,因此棧不允許有遍歷行為
棧中進入數據稱為—入棧push
棧中彈出數據稱為—出棧pop
2. 常用接口
構造函數、賦值操作、數據存取、大小操作
功能描述: 棧容器常用的對外接口
構造函數
stack<T> stk; // stack采用模板類實現,stack對象的默認構造形式
stack( const stack &stk); //拷貝構造函數
賦值操作
stack& operator=(const stack &stk); //重載等號操作符
數據存取
push(elem) ; //向棧頂添加元素
pop(); //從棧頂移除第一個元素
top(); //返回棧頂元素
大小操作
empty(); //判斷堆棧是否為空
size(); //返回棧的大小
二、Queue容器
1. 基本概念
Queue是一種先進先出(First In First Out,FIFO)的數據結構,它有兩個出口
隊列容器允許從一端新增元素,從另一端移除元素
隊列中只有隊頭和隊尾才可以被外界使用,因此隊列不允許有遍歷行為
隊列中進數據稱為—入隊push
隊列中出數據稱為—出隊pop
2. 常用接口
構造函數、賦值操作、數據存取、大小操作
功能描述: 隊容器常用的對外接口
構造函數
queue<T> que; //queue采用模板類實現,queue對象的默認構造形式
queue( const queue &que); //拷貝構造函數
賦值操作
queue& operator=(const queue &que); //重載等號操作符
數據存取
push(elem) ; //往隊尾添加元素
pop(); //從隊頭移除第一個元素
back(); //返回最后一個元素
front(); //返回第一個元素
大小操作
empty(); //判斷堆棧是否為空
size(); //返回棧的大小
三、示例代碼
stack.cpp
#include<iostream>
#include<string>
#include<stack>
using namespace std;
//棧容器常用接口
void test01()
{
//創建棧容器 棧容器必須符合先進后出
stack<int> s;
//入棧
s.push(10);
s.push(20);
s.push(30);
while(!s.empty())
{
cout<<"棧頂元素為:"<<s.top()<<endl;
s.pop(); //彈出棧頂元素
}
cout<<"棧的大小為:"<<s.size()<<endl;
}
int main()
{
test01();
system("pause");
return 0;
}
queue.cpp
#include<iostream>
#include<string>
#include<queue>
using namespace std;
class Person
{
public:
Person(string name,int age)
{
this->Name=name;
this->Age=age;
}
string Name;
int Age;
};
void test01()
{
//創建隊列
queue<Person> p;
//準備數據
Person p1("唐三藏",40);
Person p2("孫悟空",70);
Person p3("豬八戒",60);
Person p4("沙師弟",50);
//入隊
p.push(p1);
p.push(p2);
p.push(p3);
p.push(p4);
cout<<"出隊前 隊列大小:"<<p.size()<<endl;
//判斷隊列是否為空,不為空 取對頭和隊尾,出隊
cout<<"逐步出隊:"<<endl;
while(!p.empty())
{
cout<<endl<<"對頭元素 --- 姓名為:"<<p.front().Name<<" 隊頭元素 --- 年齡為:"<<p.front().Age<<endl;
cout<<"對尾元素 --- 姓名為:"<<p.back().Name<<" 隊尾元素 --- 年齡為:"<<p.back().Age<<endl;
//出隊
p.pop();
}
cout<<"出隊完成!"<<endl<<endl;
cout<<"出隊后 隊列大小:"<<p.size()<<endl;
}
int main()
{
test01();
system("pause");
return 0;
}
原文鏈接:https://blog.csdn.net/Dustinthewine/article/details/125836242
- 上一篇:Linux如何設置SSH免密登錄
- 下一篇:Vector容器的系列操作( 詳解 )
相關推薦
- 2022-06-06 自定義overflow產生的滾動條樣式設置
- 2022-07-13 淺談Redis中的自動過期機制_Redis
- 2022-07-20 用C語言實現掃雷
- 2023-01-15 tensorflow使用tf.data.Dataset?處理大型數據集問題_python
- 2022-05-11 為什么 MyBatis 里,Mapper 中的方法不能被重載
- 2022-08-21 Mac包管理器Homebrew的安裝方法_其它綜合
- 2022-10-25 Python繪制loss曲線和準確率曲線實例代碼_python
- 2022-08-15 ArrayList和LinkedList和Vector的區別
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支