栈堆的emplace和push_C++ stack emplace()用法及代码示例
堆栈是一种具有LIFO(后进先出)类型的容器适配器,其中在一端添加了一个新元素,而(顶部)仅从该端删除了一个元素。
stack::emplace()
此函数用于将新元素插入堆栈容器,新元素添加到堆栈顶部。
用法:
stackname.emplace(value)
参数:
The element to be inserted into the stack
is passed as the parameter.
Result:
The parameter is added to the stack
at the top position.
例子:
Input :mystack{1, 2, 3, 4, 5};
mystack.emplace(6);
Output:mystack = 6, 5, 4, 3, 2, 1
Input :mystack{};
mystack.emplace(4);
Output:mysstack = 4
Note: In stack container, the elements are printed in reverse order because the top is printed first then moving on to other elements.
错误和异常
1.它具有强大的异常保证,因此,如果引发异常,则不会进行任何更改。
2.参数应与容器的类型相同,否则将引发错误。
// CPP program to illustrate
// Implementation of emplace() function
#include
#include
using namespace std;
int main() {
stack mystack;
mystack.emplace(1);
mystack.emplace(2);
mystack.emplace(3);
mystack.emplace(4);
mystack.emplace(5);
mystack.emplace(6);
// stack becomes 1, 2, 3, 4, 5, 6
// printing the stack
cout << "mystack = ";
while (!mystack.empty()) {
cout << mystack.top() << " ";
mystack.pop();
}
return 0;
}
输出:
6 5 4 3 2 1
时间复杂度:O(1)
stack::emplace()和stack::push()函数之间的差异。
当push()函数将值或传递给该函数的参数的副本插入顶部的容器时,emplace()函数构造一个新元素作为参数的值,然后将其添加到容器的顶部。
应用:
给定多个整数,请使用emplace()将其添加到堆栈中,并在不使用size函数的情况下找到堆栈的大小。
Input:5, 13, 0, 9, 4
Output:5
算法
1.使用emplace()一对一地将给定元素插入堆栈容器。
2.继续弹出堆栈中的元素直到其变空,然后递增计数器变量。
3.打印计数器变量。
// CPP program to illustrate
// Application of emplace() function
#include
#include
using namespace std;
int main() {
int c = 0;
// Empty stack
stack mystack;
mystack.emplace(5);
mystack.emplace(13);
mystack.emplace(0);
mystack.emplace(9);
mystack.emplace(4);
// stack becomes 5, 13, 0, 9, 4
// Counting number of elements in queue
while (!mystack.empty()) {
mystack.pop();
c++;
}
cout << c;
}
输出:
5
栈堆的emplace和push_C++ stack emplace()用法及代码示例相关推荐
- java实现stack search_Java Stack search()用法及代码示例
Java中的java.util.Stack.search(Object element)方法用于搜索堆栈中的元素并获取其与顶部的距离.此方法从1开始而不是从0开始计数位置.位于堆栈顶部的元素被视为在位 ...
- php dirtoarray,PHP Ds\Stack toArray()用法及代码示例
PHP的Ds \ Stack::toArray()函数用于将堆栈转换为数组并返回转换后的数组.此功能不会修改实际的堆栈. 用法: void public Ds\Stack::toArray () 参数 ...
- python代码大全和用法用量_Python numpy.stack()用法及代码示例
numpy.stack()函数用于沿新轴连接相同尺寸数组的序列.axis参数指定结果轴尺寸中新轴的索引.例如,如果axis = 0,它将是第一个尺寸:如果axis = -1,它将是最后的尺寸. 用法: ...
- java indexof int_Java Stack indexOf(Object, int)用法及代码示例
Java.util.Stack.indexOf(Object element,int index)方法用于在此Stack中首次出现指定元素的索引,从索引开始向前搜索,如果找不到该元素,则返回-1.更正 ...
- JVM - 结合代码示例彻底搞懂Java内存区域_对象在堆-栈-方法区(元空间)之间的关系
文章目录 Pre 示例demo 总体关系 代码示例论证 反汇编 Pre JVM - 结合代码示例彻底搞懂Java内存区域_线程栈 | 本地方法栈 | 程序计数器 中我们探讨了线程栈中的内部结构 ,大家 ...
- js的栈堆与浅拷贝、深拷贝的理解
一:什么是堆栈? 我们都知道:在计算机领域中,堆栈是两种数据结构,它们只能在一端(称为栈顶(top))对数据项进行插入和删除. 堆:队列优先,先进先出:由操作系统自动分配释放 ,存放函数的参数值, ...
- C语言之程序中内存的来源:栈 堆 数据段
程序在运行的时候,其内存的来源主要通过三种方法: 栈 堆 数据段,总体上来讲栈是一般用来存放小内存的局部变量,堆内存和数据段的属性很像,在使用的的时候,如果这个变量是伴随程序一直存在则使用全局变 ...
- 符号配对(C语言利用栈堆)
#include<stdio.h> #include<stdlib.h> #define MaxN 100 typedef enum{false,true} bool; typ ...
- Java #JVM(HotSpot) 运行时数据区 #程序计数器(PC寄存器)#虚拟机栈(栈帧:局部变量表、操作数栈……)#堆……
目录 JVM中线程的说明 程序计数器(PC寄存器) 虚拟机栈 · 栈帧 ·· 局部变量表 ·· 操作数栈 ·· 动态链接 ·· 方法返回地址 ·· 本地方法栈 堆 · 查看堆的大小 · 堆的默认大小 ...
最新文章
- 工业机器人发展趋势分析 未来营收规模达到百亿级水平
- 从零开始netty学习笔记之BIO
- java轻功游戏,会轻功又可以飞的游戏(3d大型游戏)
- 轮换html有虚宽出现,乒乓球理论考试复习资料
- k8s滚动升级_k8s deployment 滚动更新
- MySQL的存储引擎InnoDB,B+Tree数据结构索引的实现原理图(聚簇索引/聚集索引)
- Spring cloud eureka 入门使用及指导说明(单机篇)
- Java Excel(jxl)学习笔记
- 打印出来只有a4纸一半 预览是正常的_还需要去打印店?能随身使用的便携打印机:汉印MT800评测...
- 计算机网络的结构之Internet结构
- (转)java中使用memcache
- c语言三角函数精度不够,快速三角函数算法的误差控制(sin cos)
- 【思科模拟器实验】三层交换机配置DHCP
- 深度学习:词向量和句向量(Embedding)
- 我们公司没销售 - 疫情下企业软件的互联网营销
- YOLO输出位置信息
- NRF52832-QFAA、NRF52840-QIAA性能区别-蓝牙智能手环穿戴
- LOAM系列——LeGO-LOAM配置、安装、问题解决及VLP16测试效果(完结版)
- linux 目录比较meld,Meld:Ubuntu下文件/目录对比
- 物联网通信技术第7章 自组织网络(非常全,持续更新)