STL - stack用法总结

STL中的stack用法 3. 底层容器限制:指定底层容器时,必须支持 back() 、 push_back() 、 pop_back() 操作( vector 、 deque 、 list 均满足)。// 1. 底层容器为 vector(需满足 back()、push_back()、pop_back())cout << "栈中元素个数:" << s.size() << endl;cout << "弹栈后栈顶:" << s.top() << endl;cout << "栈顶元素:" << s.top() << endl; 阅读详情

(我的STL相关的博客目录:https://blog.youkuaiyun.com/Kprogram/article/details/90408011)

(stack-c++官网:http://www.cplusplus.com/reference/stack/)

stack 是数据结构 “栈”,拥有元素先进后出的特性,如果用数组来作为栈,长度是有限的,而且需要储存栈顶的指针,有点麻烦且局限。stl提供了一个不定长容器stack来作为栈,stack表留有有栈操作的各种成员函数,方便实用。

0 - 头文件:stack  命名空间:std

#include <stack>
using namespace std;

1 - 构建一个stack:stack<typename> name 

    typename指的是栈内数据类型,可以是 int, double, 可以是struct, class, 也可以是 stack, string等等。总之是一个数据对象都行。

    name 是你构建的栈的名字,符合变量命名法则就行。

    例:构建一个 int 类型的栈, 名字叫做 S。

stack<int> s;

2 - 使用stack:常用成员函数 ( 假设你创建的stack对象名字叫 S )

    (粉红色的函数为常用函数!大部分情况下这些函数就够用了)

无参函数:

    empty():如果stack为空,返回True, 反之则返回 False。

    top():返回栈顶元素。

    pop():删除栈顶元素,不返回栈顶元素(一般与top()配合使用:先返top(),再pop(),相当于出栈操作)。

    size():返回stack内数据的个数(相当于数组长度)。

#一般用法:(假如是一个int类型的栈)
while(!S.empty()) {//当栈不为空
    int I = S.top(); S.pop();//元素出栈
    ...//对I的某些操作

有参函数:

    push(type):把一个数据(type)压入栈顶(相当于入栈)。

        因为对于栈,push等同于push_back,所以stack 没有push_back成员函数!(已经试过了会报错)

    swap(S1):交换S 和 S1 中的内容(S1是另一个stack对象)。

//假设栈内的数据类型是data
class data {
  int a;
  int b;
public:
  data(int x, int y):a(x), b(y) {}
};
//push
data d(1,2);
S.push(d);
//或者
S.push(data(1,2));

  push的优化:emplace函数(点击蓝色字体>emplace<)

使用Anaconda和conda快速搭建YOLO开发环境 本文详细介绍了如何使用Anaconda和conda为YOLO目标检测项目快速搭建独立、纯净的开发环境。通过创建虚拟环境,有效解决了Python包版本冲突和CUDA兼容性问题,并指导安装GPU版PyTorch等核心依赖,最后通过验证脚本确保环境配置成功,为YOLO开发提供了稳定可靠的基础。 阅读详情

相关推荐

UE5.4像素流送实战:GPU驱动、WebRTC与系统级调优全解析

像素流送是将实时3D渲染画面通过WebRTC编码推流至浏览器的关键技术,其本质是GPU硬件编码(如NVENC)与低延迟网络传输(UDP+BBR)的深度协同。理解其原理需跨越图形API(Vulkan/DX12)、实时音视频(H.264/H.265)、WebRTC信令与NAT穿透四大技术层。技术价值在于突破终端算力限制,支撑远程工业仿真、云VR看房等高交互场景;但落地难点集中于基础设施层——如NVIDIA驱动与UE5.4.3的CUDA Toolkit 12.2兼容性、Linux内核TCP/UDP参数调优、GPU

weixin_32943857的博客 615

算法常用C++总结

栈(stack) stack实现了一种先进后出的数据结构,使用时需要包含stack头文件 C++定义stack语法: stack<int> s; //int为栈的数据类型,也可以为string,double等 C++中stack的基本操作有: 1、出栈:如 s.pop() 注意并不返回出栈的元素 2、进栈:如 s.push(x) 3、访问栈顶元素:如s.top(); 4、判断栈空:如 s.empty() 栈为空时返回true 5、返回栈中元素个数,如:s.size() 例...

为幸福写歌的博客 630

使用PLINK做GWAS(2)

利用PLINK对单基因控制的性状进行定位,之前一篇文章粗滤的记录了一下使用PLINK的命令,本次博客主要记录一下如何根据SNP芯片的数据制作PLINK的格式,以及分析的步骤,最后数据的可视化。 首先,有的公司给的新片的数据就是一个excel表格,列表示的是样品,行表示的是基因型,基因型用ATCG构成,当然有的基因型是用数字0或者1表示的。下面我拿到的一个数据是15个样品构成的基因型,有13个样品是突变体,2个样品是野生型。 格式如下: 第二步:将此基因型存成csv文件,使用R进行读取,在R中制作pl

samhuairen的专栏 2921

stack(栈)

stack 栈容器特点  先进后出,类似于一个瓶子,最先进去的要最后才能出来; 常用函数 empty() 堆栈为空则返回真 pop() 移除栈顶元素 push() 在栈顶增加元素 size() 返回栈中元素数目 top() 返回栈顶元素 queue:back() 返回最后一个元素 empty() 如果队列空则返回真 front() 返回第一个元素 pop() 删除第一个元素 pus

BackToMe的博客 968

OpenHarmony实战开发-如何实现文件分布式同步编辑

在分布式文件场景中,分布式设备管理包含了分布式设备搜索、分布式设备列表弹窗、远端设备拉起三部分。首先在分布式组网内搜索设备,然后把设备展示到分布式设备列表弹窗中,最后根据用户的选择拉起远端设备。两台设备组网的分布式场景是工作中常常需要的。这样的分布式场景有助于加快工作效率,减少工作中的冗余,本例将为大家介绍如何实现上述功能。​ (2)订阅分布式数据变化:通过this.distributedObject.on(‘status’, this.statusCallback)监听分布式数据对象的变更。

2401_82546228的博客 751

保姆级教程:用ArcGIS Pro搞定云南30米分辨率DEM地形图(附数据下载与配色方案)

本文提供了一份详细的ArcGIS Pro教程,指导用户如何制作云南30米分辨率DEM地形图。从数据下载、预处理到镶嵌与质量控制,再到地形分析与可视化,全流程覆盖云南复杂地形的处理要点。特别包含数据下载链接、配色方案及常见问题解决方案,适合地理信息分析新手和专业人士。

weixin_30467199的博客 309

stack的常见接口说明(基于c++标准库的STL)

stack的底层可以是任意一种标准的容器或者一些其他特定的容器类,但是都必须要满足一下的操作。push_back-尾部插入元素(入栈)pop_back-尾部删除元素(出栈)back-获取尾部元素(栈顶元素)stack的接口说明。stack的接口说明。

m0_68641696的博客 265

Oracle 11g R2 RAC 到单实例 Data Guard 搭建(RMAN备份方式)

Oracle RAC集群到单机的dataguard搭建过程

驰兔的博客 1722

C++容器用法简介——stack

C++容器用法简介——stack 翻译自cplusplus 原文链接 一、简介        stack是一种容器适配器(STL的容器分为顺序容器和关联容器,容器适配器,是对这两类容器进行包装得到的具有更强的约束力的容器),被设计来用于操作先进后出(FILO)结构的情景,在这种情况下, 元素的插入和删除都只能在容器的尾部进行。        stack通过容器适配器来实现,是一种

gscsdlz的博客 9705

最短线性递推式求解与有理函数重建

这一算法来自于我们对“线性递推式拟合”的视角转换,其后得到的算法是自然的。 引理 1. 如果两个有理分式 p1/q1,p2/q2p_1/q_1, p_2/q_2p1​/q1​,p2​/q2​ 均有 deg⁡p<n,deg⁡q≤n\deg p<n, \deg q\leq ndegp<n,degq≤n 且展开式 p1/q1≡p2/q2(modx2n)p_1/q_1 \equiv p_2/q_2 \pmod {x^{2n}}p1​/q1​≡p2​/q2​(modx2n),那么 p1/q1=p2/

Entropy Increaser 的博客 2591

【AIGC】Qwen3-Embedding:Embedding与Rerank模型新标杆

Qwen3-Embedding:文本嵌入与重排序模型的技术解析与应用实践

一个内容严谨、方向前沿、极具实践价值的AI大模型技术分享站 3090

C++ stack

所以我们在自己实现stack的top函数的时候 是不能直接返回_container[0](链表不能用[])这个时候就可以用back这个函数了 因为无论是vector还是list都有front和list的接口。stack不需要迭代器 因为 栈是不能随便遍历的 因此方括号也不能用。因为对于自定义类型 编译器会调用它们的默认构造!这个地方不用写析构函数 构造函数和拷贝赋值等。

Starry_tsx的博客 351

Ubuntu零基础入门到精通【4.4讲】:网络、蓝牙、显示器、声音与输入法设置!

🏆 本文收录于 《滚雪球学 Ubuntu》 专栏。 本专栏面向有一定计算机基础,但尚未系统学习 Linux / Ubuntu 的读者,采用“滚雪球式学习法”:先装好、再会用、再理解、再优化、再实战,带你从第一次进入 Ubuntu 桌面 / 终端开始,逐步掌握 Ubuntu 的日常使用、命令操作、软件安装、系统配置、开发环境搭建与服务器部署能力。

**My Coding Family** 1486

【C++】C++ STL stack 用法

转自:https://www.cnblogs.com/magisk/p/9193351.html Stack(栈)是一种后进先出的数据结构,也就是LIFO(last in first out) ,最后加入栈的元素将最先被取出来,在栈的同一端进行数据的插入与取出,这一段叫做“栈顶”。 使用STL的stack需要include一个头文件<stack> 构造 template <class T, class Container = deque<T> > class st

我的笔记本 508

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

STL中stack的用法

【转】STL中stack的用法      stack也是程序设计中常常用到的数据容器,STL为我们提供了stack的实现,因此在使用stack时必须包含头文件,并使用统一命名空间。 1.声明一个stack    stack s1;    stack s2; stack模板类需要2个模板参数,一个为元素类型,一个为容器类型,但是只有元素类型是必要的,在容器类型缺

u011333814的专栏 803

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

【转】STL中stack的用法

stack也是程序设计中常常用到的数据容器,STL为我们提供了stack的实现,因此在使用stack时必须包含头文件,并使用统一命名空间。 1.声明一个stack    stack s1;    stack s2; stack模板类需要2个模板参数,一个为元素类型,一个为容器类型,但是只有元素类型是必要的,在容器类型缺省时,默认为deque。 2.stack中的操作

小城故事多 专栏 502

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

STL之stack的常见用法详解

stack的定义其定义的写法和其他STL容器相同, typename可以任意基本数据类型或容器:stack name;stack容器内元素的访问与常用函数实列解析先出的数据结构,在STL的 stack中只能通过top()来访问栈顶元素。push(x)将x入栈,时间复杂度为O(1),实例见“ stack容器内元素的访问。top()获得栈顶元素,时间复杂度为O(1),实例见“ stack容器内元素的访问。pop()用以弹出栈顶元素,时间复杂度为O(1)。

2401_84415683的博客 1326

STL之stack常见用法详解

摘自胡凡的《算法笔记》,仅作记录用! 前言:要使用stack,应先添加头文件#include <stack>,并在头文件下面加上using namespace std;然后就可以使用了 一、stack的定义 其定义的写法和其他STL容器相同,typename可以任意基本数据类型或容器stack< typename > name; 二、stack容器内元素的访问 由于栈本身就是一种后进先出的数据结构,在STL的stack中只能通过top()来访问栈顶元素 三、stack常见函数

lilian的博客 1557

STL | stack用法

1、常规用法 #include <iostream> #include <stack> using namespace std; int main() { stack<int> s; for (int i = 0; i < 10; i++) { s.push(i); //入栈一个元素 } cout << "s.size()...

李昊的博客 250

STL —— stack的用法及实例

文章目录栈的基本性质STL——stack的用法实例栈的应用 栈的基本性质  栈是允许在一端进行插入或删除操作的线性表。 栈顶Top:线性表允许插入和删除的那一端。 栈底Bottom:固定的,不允许进行插入和删除的另一端。  栈最大的操作特性为后进先出LIFO(Last In First Out),即越往后入栈的元素会越早出栈,越先入栈的元素将会越晚出栈。 STL——stack的用法  在C++中的标准模板库中,提供了栈模板。对于栈模板,我们不用过多关注其实现细节,只需掌握在程序中的用法即可。   基本操

薛定谔的猫的博客 1023

C++ stl中的stack和queue的相关函数用法

使用默认的适配器定义栈。使用特定的适配器定义栈。如果没有指定容器时,默认使用deque使用默认的适配器定义队列。使用特定的适配器定义队列。如果没有指定适配器时,默认使用deque。

fallzzzzz的博客 590

[STL]stack和queue基本API用法及比对

Stack特性 Stack构造函数 Stack存取删除 Stack 大小操作 queue特性 queue构造函数 queue存取删除操作 queue 的大小操作

weixin_44972997的博客 892
上一篇: Python - 多进程使用教程
下一篇: STL - queue用法总结
Korpse
博客等级 码龄9年 115粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值