当前位置: 首页 > news >正文

【C++STL标准库】容器适配器

功能:将功能类似,但是接口不符合的接口转换成另一个接口

stack 栈stack(栈)

  • 特点:先入后出,只能从栈顶弹出值,只能从栈顶压入值

也就是说栈需要的功能:push_back、pop_back
所以可以与栈适配的容器:vector,list,deque(双向迭代器)
适配器不仅仅是兼容,还是一种限制:
push();push_back();
pop();pop_back;
top();back();

这里给出stack的基本使用方法:

#include <iostream>
#include <stack>int main() {std::stack<int> arr;//也可以显示指定队列使用的容器:std::stack<std::deque<int>> arr1;std::stack<std::initializer_list<int>> arr2;std::stack<std::deque<int>> arr3;//如果使用了不适配的容器,就会报错://std::stack<std::array<int>> arr4;//psuh方法,向栈顶压入值,返回值类型:voidstd::cout << typeid(arr.push(2)).name() << std::endl;for (int i = 0; i < 5; i++) {arr.push(i);}//pop方法,从栈顶弹出值,返回值:voidstd::cout << typeid(arr.pop()).name() << std::endl;arr.pop();//top方法,取出栈顶的值,返回值类型:Tint a = arr.top();std::cout << a << std::endl;//size方法:计算栈的大小,返回值类型:unsigned intint b = arr.size();std::cout << typeid(arr.size()).name() << std::endl;std::cout << b << std::endl;return 0;
}

queue 队列

  • 队列的特性:头部出,尾部进

适配的容器:deque,list
push()、push_back()
pop()、pop_front()
front()
back()

这里给出queue的基本使用介绍:

#include <iostream>
#include <queue>template <typename T>
void print(T Begin, T End);int main() {std::queue<int> obj;//可以显示指定适配的容器std::queue<std::deque<int>> obj1;std::queue<std::initializer_list<int>> obj2;//push方法:向队列中压入元素,返回值:voidfor (int i = 0; i < 5; i++) {obj.push(i);}std::cout << typeid(obj.push(1)).name() << std::endl;//size方法,返回队列的实际大小,返回值类型:unsigned intint a = obj.size();std::cout << a << std::endl;std::cout << typeid(obj.size()).name() << std::endl;//pop方法:从队列中弹出元素(头部),返回值:void,需要注意的是,pop方法不改变队列的实际大小std::cout << typeid(obj.pop()).name() << std::endl;int b = obj.size();std::cout << b << std::endl;//front,back方法,返回队列首的元素,返回值类型:Tint c = obj.front();int d = obj.back();std::cout << c << std::endl;std::cout << d << std::endl;std::cout << typeid(obj.front()).name() << std::endl;std::cout << typeid(obj.back()).name() << std::endl;return 0;
}

priority_queue 有限队列

适配容器:默认是vector,内部使用堆排序
greater指定大的在上面,优先级低的先出队
less指定小的在上面,优先级高的先出队

这里给出priority_queue的基本使用介绍:

  ```c_cpp#include <iostream>#include <deque>#include <queue>#include <vector>#include <list>template <typename T>void print(T Begin, T End);int main() {std::priority_queue<int, std::vector<int>, std::less<int>> obj;//可以显示指定适配的容器(第二个参数),可以指定排序规则(第三个参数),内部会默认使用堆排序obj.push(100);obj.push(200);obj.push(500);obj.push(120);obj.push(150);while (!obj.empty()) {std::cout << obj.top() << std::endl;obj.pop();}return 0;}

如果发现文章中有错误,还请大家指出来,我会非常虚心地学习,我们一起进步!!!

相关文章:

【C++STL标准库】容器适配器

功能&#xff1a;将功能类似&#xff0c;但是接口不符合的接口转换成另一个接口 stack 栈stack&#xff08;栈&#xff09; 特点&#xff1a;先入后出&#xff0c;只能从栈顶弹出值&#xff0c;只能从栈顶压入值 也就是说栈需要的功能&#xff1a;push_back、pop_back 所以可…...

2023深圳杯(东三省)数学建模ABC题思路及代码

大家好呀&#xff0c;比赛开赛后我一直在去写各个题&#xff0c;深圳杯的难度还是比较大的&#xff0c;在这里给大家带来初步的选题建议及思路。 本次深圳杯小白推荐选择A题&#xff0c;数据分析类题目无论怎样都能完成论文&#xff0c;内容也会比较丰富。学过嵌入信息的可以选…...

Set集合类详解(附加思维导图)

目录 一、Set集合思维导图 二、set集合类常用方法 2.1、HashSet集合常用方法 2.2、TreeSet集合的使用 三、HashSet、LinkedHashSet、TreeSet的使用场景 四、list和set集合的区别 一、Set集合思维导图 二、set集合类常用方法 2.1、HashSet集合常用方法 ①&#xff1a;add…...

【vue3】vue3接收props以及emit的用法

技术&#xff1a;vue3.2.40 UI框架&#xff1a;arco-design 2.44.7 css技术&#xff1a;less 4.1.3 实现&#xff1a;子组件接收props以及通过emit方法传值父组件 vue3使用的组合式API&#xff0c;我这里使用的是defineComponent 1.父页面调用子组件 <template><d…...

【Lua学习笔记】Lua入门

文章目录 Lua变量数据类型变量声明其他表示 Lua语法判断逻辑判断&#xff08;Lua很特殊&#xff0c;这个比较重要&#xff09;短路判断 ifif else 循环whileforrepeat 迭代器泛型for迭代器无状态迭代器多状态的迭代器 Lua函数select方法 数组字符索引_G &#xff08;不是教程&a…...

LLM Data Pipelines: 解析大语言模型训练数据集处理的复杂流程

编者按&#xff1a;在训练大语言模型的过程中,构建高质量的训练数据集是非常关键的一步&#xff0c;但关于构建大模型训练所需数据集的通用数据处理流程&#xff08;Data pipelines)的相关资料极为稀少。 本文主要介绍了基于Common Crawl数据集的数据处理流程。首先,文章概述了…...

如何使用postman判断返回结果是否正确

针对一个接口&#xff0c;我们在知道参数以及参数对应的结果时&#xff0c;可以通过postman进行判断&#xff0c;验证返回数据是否与预期数据相等。这样可以使我们的接口测试更加的方便简洁。 1、准备数据。 postman可以接受的文件格式如图所示&#xff0c;一般来说可以将我们…...

A General framework for Prompt

你已经知道了 Prompt 可以具有一些通用的结构&#xff0c;比如一个简单的Prompt 结构: 能否帮我为我的课程 TAI自动化&#xff0c;设计一套数字营销策略? Action 我们的目标是激发目标受众一一那些希望利用人工智能简化工作流的人们的兴趣&#xff0c;并提高课程的知名度。 G…...

使用python将PDF转word

实现功能&#xff0c;将程序所在当前路径下的所有PDF文件转化为word import os from pdf2docx import Converter# 获取当前路径 current_path os.getcwd()# 遍历当前路径下的所有文件和文件夹 for file_name in os.listdir(current_path):# 检查文件是否为 PDF 文件if file_n…...

CMU 15-445 -- Logging Schemes - 17

CMU 15-445 -- Logging Schemes - 17 引言IndexFailure ClassificationTransaction FailuresSystem FailuresStorage Media Failures Buffer Pool PoliciesShadow Paging: No-Steal ForceWrite-Ahead Log (WAL): Steal No-ForceLogging SchemesCheckpoints小结 引言 本系列为…...

逻辑回归分析实战(根据鸢尾花的性质预测鸢尾花类别)

紧接着上过一个线性回归模型&#xff08;一元线性回归模型实战&#xff09; 一元线性回归模型和逻辑回归模型是统计学中常见的两种回归模型&#xff0c;它们有以下几点不同之处&#xff1a; 1. 目标变量类型&#xff1a;一元线性回归模型适用于连续型目标变量&#xff0c;即预测…...

【每日一题】2050. 并行课程 III

【每日一题】2050. 并行课程 III 2050. 并行课程 III题目描述解题思路 2050. 并行课程 III 题目描述 给你一个整数 n &#xff0c;表示有 n 节课&#xff0c;课程编号从 1 到 n 。同时给你一个二维整数数组 relations &#xff0c;其中 relations[j] [prevCoursej, nextCour…...

【kubernetes系列】kubernetes之使用kubeadm搭建高可用集群

概述 目前来说&#xff0c;kubernetes集群搭建的方式很多&#xff0c;选择一个稳定的适合自己的很重要。目前使用kubeadm方式搭建k8s集群还是很常见的&#xff0c;使用kubeadm搭建可以很简单差不多两条命令就行&#xff0c;也可以稍微复杂一点做一些基础优化&#xff0c;本文将…...

SpringBoot 快速实现 IP 地址解析

在spring boot 项目中获取请求的ip与详细地址&#xff0c;很多网站app 中都已经新增了ip 地址显示&#xff0c;大家也可以用在自己的开发中&#xff0c;显得更高级。 引入 如果使用本地ip 解析的话&#xff0c;我们将会借助ip2region&#xff0c;该项目维护了一份较为详细的本…...

【云原生】Docker镜像的创建,Dockerfile

一、Docker镜像的创建 创建镜像有三种方法&#xff0c;分别为【基于已有镜像创建】、【基于本地模板创建】以及【基于Dockerfile创建】。 1.基于现有镜像创建 &#xff08;1&#xff09;首先启动一个镜像&#xff0c;在容器里做修改docker run -it --name web centos:7 /bin/…...

了解Unity编辑器之组件篇Event(七)

Event&#xff1a;用于在对象之间进行通信和交互的机制。它可以帮助你实现触发和响应特定动作或状态的逻辑一、Event System&#xff1a;用于处理 UI 事件的系统组件 First Selected 属性&#xff1a;定义了在场景加载或 UI 激活时&#xff0c;哪个 UI 元素将成为首选的选中元素…...

bash: 睡觉的冒号;是不是两个点?

文章目录 简介躺着的冒号是两个点正常冒号总结简介 在bash里冒号和躺着的冒号的用法不一样一定要注意别用错。 躺着的冒号是两个点 难道正常的不是两个点)的作用: A sequence expression takes the form {x…y[…incr]}, where x and y are either integers or single cha…...

揭秘爱数AnyShare认知助手:大模型深度产品化,深化人与机器的“分工协作”

文 | 智能相对论 作者 | 叶远风 大模型竞逐日趋白热化&#xff0c;百模大战热闹非凡。 但是&#xff0c;对产业主体或者普通看客而言&#xff0c;大模型究竟如何改变一线业务、实现工作方式的变革甚至组织转型&#xff0c;很多人并没有具象化的认知。 技术厉害、产品牛&…...

ad+硬件每日学习十个知识点(10)23.7.21

文章目录 1.verilog新建文件夹结构2.怎么在quartus2里新建工程?3.如果在quartus2新建工程后,发现器件选择错误,怎么修改?4.在quartus2新建工程后,怎么新建文件编写程序?4.在quartus2新建工程后,怎么添加已有文件编写程序?5.quartus2怎么调节字体?6.刚下载完quartus2的…...

RCU 使用及机制源码的一些分析

》内核新视界文章汇总《 文章目录 1 介绍2 使用方法2.1 经典 RCU2.2 不可抢占RCU2.3 加速版不可抢占RCU2.4 链表操作的RCU版本2.5 slab 缓存支持RCU 3 源码与实现机制的简单分析3.1 数据结构3.2 不可抢占RCU3.3 加速版不可抢占RCU3.4 可抢占RCU3.5 报告禁止状态3.6 宽限期的开…...

ClickHouse配置优化实战:关键参数详解与性能调优指南

1. ClickHouse配置优化的核心逻辑 ClickHouse作为一款高性能的OLAP数据库&#xff0c;其配置优化需要遵循三个黄金法则&#xff1a;资源隔离、瓶颈定位和场景适配。我见过太多团队一上来就盲目调整参数&#xff0c;结果反而导致性能下降。正确的做法应该是先理解系统行为&#…...

Mustache错误处理与调试:7个常见问题排查清单

Mustache错误处理与调试&#xff1a;7个常见问题排查清单 【免费下载链接】mustache Logic-less Ruby templates. 项目地址: https://gitcode.com/gh_mirrors/mu/mustache Mustache是一款流行的无逻辑Ruby模板引擎&#xff0c;但开发者在实际使用中经常会遇到各种错误和…...

别等电脑挂了后悔,教你现在就查看Bitlocker密钥

网管小贾 / sysadm.cc陈主任晃了晃脑袋&#xff0c;皱着眉冲着刘晓白说道&#xff1a;“简历我看过了&#xff0c;就算请我吃饭&#xff0c;恐怕也很难办啊&#xff01;” 刘晓白则一呲牙&#xff1a;“我说老舅&#xff0c;要进你们公司&#xff0c;还不是您一句话的事儿嘛&am…...

打破游戏边界:Sunshine构建你的无缝云游戏体验

打破游戏边界&#xff1a;Sunshine构建你的无缝云游戏体验 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 想象一下这样的场景&#xff1a;你在客厅的智能电视上玩着3A大作&#x…...

nuScenes多传感器融合:毫米波雷达点云与图像时空对齐实战

1. 多传感器融合的核心挑战 自动驾驶系统就像一位全天候工作的司机&#xff0c;需要同时处理来自不同"感官"的信息。毫米波雷达擅长测距和测速&#xff0c;摄像头则能识别颜色和纹理&#xff0c;但要让它们像人类感官一样协同工作&#xff0c;首先要解决时空对齐的问…...

TrackingNet评估实战:从注册到结果解析

1. TrackingNet评估平台入门指南 第一次接触TrackingNet这个目标跟踪领域的权威评估平台时&#xff0c;我和大多数研究者一样有点懵。这个平台不像GitHub那样有直观的界面&#xff0c;操作流程也相对复杂。不过别担心&#xff0c;跟着我的实战经验走&#xff0c;保证你能少踩8…...

Ollama+Qwen2.5-VL搭建教程:打造你的智能视觉分析工具

OllamaQwen2.5-VL搭建教程&#xff1a;打造你的智能视觉分析工具 1. 引言&#xff1a;为什么选择Qwen2.5-VL 在当今AI技术快速发展的时代&#xff0c;视觉-语言多模态模型正成为解决复杂问题的关键工具。Qwen2.5-VL-7B-Instruct作为通义千问系列的最新成员&#xff0c;在视觉…...

从旅游Vlog到新闻视频:QVHIGHLIGHTS数据集在跨领域应用中的实战指南

QVHIGHLIGHTS数据集&#xff1a;跨领域视频内容智能解析的工程实践 当你在旅行Vlog中搜索"日落时分的海滩漫步"&#xff0c;或在新闻视频中寻找"抗议活动现场冲突画面"&#xff0c;传统视频平台只能返回整段视频——这就像给你一整本书而不是精确的页码。Q…...

2026前端面试题

1.vue的通信方式Vue组件通信方式根据组件间的关系&#xff08;父子、兄弟、跨级、任意组件&#xff09;可分为多种方案。一、父子组件通信props&#xff08;父-子&#xff09;父组件通过属性向子组件传递数据&#xff0c;子组件通过defineProps接收<!-- 父组件 --> <C…...

新手福音:用快马AI生成带详解注释的Arduino交通灯实验代码

作为一个刚接触单片机的新手&#xff0c;第一次看到Arduino开发板时既兴奋又迷茫。那些闪烁的LED灯和蜂鸣器背后到底藏着什么秘密&#xff1f;今天我就用InsCode(快马)平台来探索一个有趣的交通灯模拟项目&#xff0c;整个过程比想象中简单多了。 项目构思 我想做一个能模拟真实…...