C++笔记之stack、queue、priority_queue、deque

news/2024/11/30 11:29:26/

code review!

C++笔记之stack、queue、priority_queue、deque

文章目录

  • C++笔记之stack、queue、priority_queue、deque
    • 一.cppreference介绍
      • 1.stack
      • 2.queue
      • 3.priority_queue
      • 4.deque
    • 二.容器适配器
    • 三.stack详解
      • 1.创建一个不包含任何元素的 stack 适配器,并采用默认的 deque 基础容器
      • 2.创建指定底层容器的 stack 适配器
      • 3.赋值
      • 4.没有迭代器
      • 5.stack的使用例程

一.cppreference介绍

1.stack

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.queue

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.priority_queue

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.deque

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二.容器适配器

在这里插入图片描述
在这里插入图片描述

三.stack详解

1.创建一个不包含任何元素的 stack 适配器,并采用默认的 deque 基础容器

std::stack<int> data;

2.创建指定底层容器的 stack 适配器

在这里插入图片描述

3.赋值

在这里插入图片描述

4.没有迭代器

stack没有其他的访问元素的方法,也就意味着,stack是不能被遍历的,因此也不提供迭代器。

5.stack的使用例程

在这里插入图片描述
在这里插入图片描述
代码

#include <iostream>
#include <stack>
#include <list>
#include <vector>
#include <cstring>using namespace std;template<class T>
void display(T& data)   //注意函数的入参,会修改传入的变量
{
//   int nCount = data.size();
//   for(int nIndex = 0; nIndex < nCount; ++nIndex) //如果使用for循环遍历,则不能用data.size()直接代替nCount,因为data.pop()会改变data.size()while (!data.empty()){cout << data.top() << " ";data.pop();}cout << endl;
}int main(int argc, char* argv[])
{stack<int> data0;for(int nIndex = 0; nIndex < 10; ++nIndex){data0.push(nIndex);}display(data0);     // 9 8 7 6 5 4 3 2 1 0stack<int, vector<int>> data;for(int nIndex = 0; nIndex < 10; ++nIndex){data.push(nIndex);}display(data);      // 9 8 7 6 5 4 3 2 1 0vector<int> primes {1, 2, 3, 4};stack<int, vector<int>> data1(primes);display(data1);     // 4 3 2 1stack<int, list<int>> data2;for(int nIndex = 1; nIndex <= 10; ++nIndex){data2.push(nIndex * 2);}display(data2);     // 20 18 16 14 12 10 8 6 4 2list<int> values {5, 6, 7, 8};stack<int, list<int>> data3(values);display(data3);     // 8 7 6 5list<int> value {11, 12, 13, 14};stack<int, list<int>> data4(value);stack<int, list<int>> data5 = data4;display(data5);     // 14 13 12 11display(data4);     // 14 13 12 11return 0;
}

http://www.ppmy.cn/news/535445.html

相关文章

第J3-1周:DenseNet算法 实现乳腺癌识别

目录 一、理论基础1.前言2.设计理念3.网络结构4.与其他算法效果对比 二、 前期准备1. 设置GPU2. 导入数据3. 划分数据集 三、搭建网络模型1. DenseLayer模块2. DenseBlock模块3. Transition模块4. 构建DenseNet5. 构建densenet121 四、 训练模型1. 编写训练函数2. 编写测试函数…

格力前端笔试

1 正则表达式 ^匹配的是字符串的开始位置 $匹配的是字符串的结束位置 2 箭头函数 箭头函数内的this对象是定义时所在的对象&#xff0c;而不是使用时所在的对象 3 HTML5的web存储对象有localStorage和sessionStorage 4 script放在head和body底部的区别 放在head中脚本会优…

格力可以考虑收购一个手机品牌

格力可以考虑收购一个手机品牌 红朝儒生 2017-6-23 关键字&#xff1a;格力 手机 品牌 简介&#xff1a;建议格力收购一个小的手机品牌&#xff0c;借此进行推广。 从格力开始做手机以来&#xff0c;销量一直没有起色&#xff0c;离预期目标相差太远。目前看起来&#xff0c;…

Spring高手之路6——Bean生命周期的扩展点:BeanPostProcessor

文章目录 1. 探索Spring的后置处理器&#xff08;BeanPostProcessor&#xff09;1.1 BeanPostProcessor的设计理念1.2 BeanPostProcessor的文档说明 2. BeanPostProcessor的使用2.1 BeanPostProcessor的基础使用示例2.2 利用BeanPostProcessor修改Bean的初始化结果的返回值2.3 …

k8s控制器之job--第六弹Job的模式

Kubernetes Job 对象可以用来支持 Pod 的并发执行&#xff0c;但是&#xff1a; Job 对象并非设计为支持需要紧密相互通信的Pod的并发执行&#xff0c;例如科学计算Job 对象支持并发处理一系列相互独立但是又相互关联的工作任务&#xff0c;例如&#xff1a; 发送邮件渲染页面…

Web网页制作-知识点(2)——常用文本标签、列表标签、表格标签、Form表单、块元素与行内元素(内联元素)

目录 常用文本标签 列表标签 有序列表 无序列表 定义列表 表格标签 表格组成与特点 表格标签 表格属性 ​​​合并表格单元格 Form表单 属性说明 表单元素 文本框 密码框 提交按钮 块元素与行内元素&#xff08;内联元素&#xff09; 内联元素和块级元素…

【C++】关于友元类与友元函数

文章目录 友元友元类友元成员函数互为友元关系共同的友元 友元 友元类 什么时候希望一个类成为另一个类的友元呢&#xff1f; 假定需要编写一个模拟电视机和遥控器的简单程序。决定定义一个Tv类和一个Remote类&#xff0c;来分别表示电视机和遥控器。很明显&#xff0c;这两…

CSS3-定位

网页常见布局方式 1 标准流 1 块级元素独占一行 → 垂直布局 2 行内元素/行内块元素一行显示多个 → 水平布局 2 浮动 可以让原本垂直布局的 块级元素变成水平布局 3 定位 1 可以让元素自由的摆放在网…