C++【stack/queue】用法和例子

Stack的常用基本操作:
  1. s.push() // 压栈
  2. s.emplace() // 插入,相当于push(目前掌握的唯一区别是emplace可以自行调用构造函数,push不行)
  3. s.empty() // 判断栈空
  4. s.top() // 访问栈顶元素
  5. s.pop() // 退栈
  6. s.size() // 记录栈大小
/***
 * stack的基本操作
 * Jan 1 2019
 */

int main() {
       stack<double> s; // 定义一个栈
       for (int i = 0; i < 10; i++)
              s.push(i);  // 压栈
       s.emplace(10);  // 相当于插入push
       while (!s.empty()) // 判断栈空
       {
              printf("%lf\n", s.top()); // 访问栈顶元素
              s.pop(); // 弹出栈
       }
       cout << "栈内的元素的个数为:" << s.size() << endl; // 栈大小
       return 0;
}

/// 输出结果
10.000000
9.000000
8.000000
7.000000
6.000000
5.000000
4.000000
3.000000
2.000000
1.000000
0.000000
栈内的元素的个数为:0

Queue的常用基本操作:
  1. q.push() // 入队
  2. q.emplace() // 插入,相当于push(区别同Stack)
  3. q.empty() // 判断队空
  4. q.front() // 访问队头元素
  5. q.back() // 访问队尾元素
  6. q.pop() // 出队
  7. q.size() // 记录队大小

 1 /***
 2  * queue的基本操作
 3  * Jan 1 2019
 4  */
 5
 6
 7 int main() {
 8     queue<double> q; // 定义一个队列
 9     for (int i = 0; i < 10; i++)
10         q.push(i);  // 入队
11     q.emplace(10);  // 相当于插入push
12     printf("%lf\n", q.back()); // 访问队尾元素
13     while (!q.empty()) // 判断队空
14     {
15         printf("%lf\n", q.front()); // 访问队头元素
16         q.pop(); // 出队
17     }
18     cout << "队内的元素的个数为:" << q.size() << endl; // 队列大小
19     return 0;
20 }

/// 输出结果
10.000000
0.000000
1.000000
2.000000
3.000000
4.000000
5.000000
6.000000
7.000000
8.000000
9.000000
10.000000
队内的元素的个数为:0

原文地址:https://www.cnblogs.com/tangcumalaxia/p/10340263.html

时间: 2024-10-11 17:42:56

C++【stack/queue】用法和例子的相关文章

STL容器用法速查表:list,vector,stack,queue,deque,priority_queue,set,map

STL容器用法速查表:list,vector,stack,queue,deque,priority_queue,set,map   list vector deque stack queue priority_queue set [unordered_set] map [unordered_map] multimap [unordered_multimap]     contiguous storage double-ended queue LIFO FIFO 1st is greatest  

stack queue priority_queue

可以直接使用的数据结构 stack queue priority_queue 头文件 <stack> <queue> <queue> 声明 stack<int>s1 queue<int>q; #include<functional> #include<vector> priority_queue<int,vector<Int>,less<Int>> pq; 从小到大 容量 s1.size

STL容器适配器 stack, queue

stack是一种后进先出(last in first out)的数据结构.它只有一个出口,如图所示.stack允许新增元素,删除元素,取得最顶端元素.但除了最顶端外,没有其他任何地方可以存储stack的其他元素,换言之,stack不允许有遍历行为. 将元素推入stack的操作称为push, 将元素推出stack的操作称为pop. 为什么将stack称为适配器呢?我们先来看看适配器是怎么定义的.具有这种“修改某物接口,形成另一种风貌”之性质者,称为adapter(适配器).换言之,由于stack的

UVA11995I Can Guess the Data Structure!(stack + queue + priority_queue)

题目:UVA11995I Can Guess the Data Structure!(stack + queue + priority_queue) 题目大意:给你两种指令,1代表让1后面的数字进入这个数据结构,2代表无差错的从数据结构中取出这个数字,问这个数据结构是stack还是queue还是priority_queue,还是不确定,还是以上均不可能. 解题思路:用STL中的这些数据结构来模拟一下,模拟成功就是这种数据结构,注意pop的时候要判断是否empty. 代码: #include <c

我教女朋友学编程html系列(5) html中table的用法和例子

女朋友不是学计算机的,但是现在从事计算机行业,做技术支持,她想学习编程,因此我打算每天教她一点点,日积月累,带她学习编程,如果其他初学者感兴趣,可以跟着学. 为了将table介绍的简单.生动,具有实战性,我花了3个半小时,写了5个列子,把table的一些重点知识讲了一下,直接看代码吧,一边看一边跟着敲,多动手练习. 1,边框不重叠的3行3列表格 <html> <head> <title> html中table的用法和例子 </title> </head

C++ stack,queue,vector 中 易混淆的常用方法 浅析

C++ 中stack,queue,vector是常见的数据结构,它们分别封装在<stack>,<queue>,<vector>头文件中. stack,queue,vector的定义如下: stack<class T> s; queue<class T> q; vector<class T> v; stack常用方法: push()的向容器顶部里插入元素: pop()是删除容器顶部的元素: top()返回容器顶部的元素: size()返

STL学习——Stack/Queue篇

STL学习--Stack/Queue篇 Stack 概述 stack是一种先进先出的数据结构,只有一个出口,stack允许新增元素,移除元素,取得最顶端元素.但除了最顶端外,没有任何办法可以存取stack其他元素.即不允许遍历行为. 实现 stack实现是以容器为底部结构的,将容器的接口改变,使其符合"先进先出"特性,便形成了一个栈.具体实现可以将底部deque的头端开口封闭,便实现了stack.因为stack具有"修改某物接口,形成另一种风貌"性质,故称为&quo

[ZZ] C++ stack/queue

STL--stack/queue的使用方法2010-01-05 17:36stack(栈)和queue(队列)也是在程序设计中经常会用到的数据容器,STL为我们提供了方便的stack(栈)的queue(队列)的实现. 准确地说,STL中的stack和queue不同于vector.list等容器,而是对这些容器的重新包装.这里我们不去深入讨论STL的stack和queue的实现细节,而是来了解一些他们的基本使用. 1.stack stack模板类的定义在<stack>头文件中. stack模板类

STL之stack,queue,优先队列

 1.stack,size(),empty(),pop()函数 #include<stack> #include <iostream> using namespace std; //通过push()方法入栈 //通过size()方法求栈中元素的个数 //通过empty()方法判断栈是否为空 //通过pop()求栈中最顶端的元素 void main() { int num; cin >> num; stack<int> mystack; for (; nu