堆栈是一种具有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()用法及代码示例相关推荐

  1. java实现stack search_Java Stack search()用法及代码示例

    Java中的java.util.Stack.search(Object element)方法用于搜索堆栈中的元素并获取其与顶部的距离.此方法从1开始而不是从0开始计数位置.位于堆栈顶部的元素被视为在位 ...

  2. php dirtoarray,PHP Ds\Stack toArray()用法及代码示例

    PHP的Ds \ Stack::toArray()函数用于将堆栈转换为数组并返回转换后的数组.此功能不会修改实际的堆栈. 用法: void public Ds\Stack::toArray () 参数 ...

  3. python代码大全和用法用量_Python numpy.stack()用法及代码示例

    numpy.stack()函数用于沿新轴连接相同尺寸数组的序列.axis参数指定结果轴尺寸中新轴的索引.例如,如果axis = 0,它将是第一个尺寸:如果axis = -1,它将是最后的尺寸. 用法: ...

  4. java indexof int_Java Stack indexOf(Object, int)用法及代码示例

    Java.util.Stack.indexOf(Object element,int index)方法用于在此Stack中首次出现指定元素的索引,从索引开始向前搜索,如果找不到该元素,则返回-1.更正 ...

  5. JVM - 结合代码示例彻底搞懂Java内存区域_对象在堆-栈-方法区(元空间)之间的关系

    文章目录 Pre 示例demo 总体关系 代码示例论证 反汇编 Pre JVM - 结合代码示例彻底搞懂Java内存区域_线程栈 | 本地方法栈 | 程序计数器 中我们探讨了线程栈中的内部结构 ,大家 ...

  6. js的栈堆与浅拷贝、深拷贝的理解

    一:什么是堆栈?   我们都知道:在计算机领域中,堆栈是两种数据结构,它们只能在一端(称为栈顶(top))对数据项进行插入和删除. 堆:队列优先,先进先出:由操作系统自动分配释放 ,存放函数的参数值, ...

  7. C语言之程序中内存的来源:栈 堆 数据段

    程序在运行的时候,其内存的来源主要通过三种方法:  栈  堆  数据段,总体上来讲栈是一般用来存放小内存的局部变量,堆内存和数据段的属性很像,在使用的的时候,如果这个变量是伴随程序一直存在则使用全局变 ...

  8. 符号配对(C语言利用栈堆)

    #include<stdio.h> #include<stdlib.h> #define MaxN 100 typedef enum{false,true} bool; typ ...

  9. Java #JVM(HotSpot) 运行时数据区 #程序计数器(PC寄存器)#虚拟机栈(栈帧:局部变量表、操作数栈……)#堆……

    目录 JVM中线程的说明 程序计数器(PC寄存器) 虚拟机栈 · 栈帧 ·· 局部变量表 ·· 操作数栈 ·· 动态链接 ·· 方法返回地址 ·· 本地方法栈 堆 · 查看堆的大小 · 堆的默认大小 ...

最新文章

  1. 工业机器人发展趋势分析 未来营收规模达到百亿级水平
  2. 从零开始netty学习笔记之BIO
  3. java轻功游戏,会轻功又可以飞的游戏(3d大型游戏)
  4. 轮换html有虚宽出现,乒乓球理论考试复习资料
  5. k8s滚动升级_k8s deployment 滚动更新
  6. MySQL的存储引擎InnoDB,B+Tree数据结构索引的实现原理图(聚簇索引/聚集索引)
  7. Spring cloud eureka 入门使用及指导说明(单机篇)
  8. Java Excel(jxl)学习笔记
  9. 打印出来只有a4纸一半 预览是正常的_还需要去打印店?能随身使用的便携打印机:汉印MT800评测...
  10. 计算机网络的结构之Internet结构
  11. (转)java中使用memcache
  12. c语言三角函数精度不够,快速三角函数算法的误差控制(sin cos)
  13. 【思科模拟器实验】三层交换机配置DHCP
  14. 深度学习:词向量和句向量(Embedding)
  15. 我们公司没销售 - 疫情下企业软件的互联网营销
  16. YOLO输出位置信息
  17. NRF52832-QFAA、NRF52840-QIAA性能区别-蓝牙智能手环穿戴
  18. LOAM系列——LeGO-LOAM配置、安装、问题解决及VLP16测试效果(完结版)
  19. linux 目录比较meld,Meld:Ubuntu下文件/目录对比
  20. 物联网通信技术第7章 自组织网络(非常全,持续更新)

热门文章

  1. 基于javaweb心理咨询预约管理系统
  2. datagrid控件使用技巧大集合
  3. (新西达30A电调+1400KV电机)无人机(航模)电调解索和驱动方法
  4. 微信公众号开发之服务器验证接入
  5. 逻辑回归损失函数与最大似然估计
  6. 以人工智能为动力的市场营销,你赶上了吗?
  7. 全时牵手央企CIO论坛,助力央企数字化转型
  8. 苹果 App Store账号申请和证书申请发布app等知识
  9. EHF数据集简介(SMPL-X)
  10. PowerPoint绘图笔不能用