C++ STL 中的 stack emplace()


在本文中,我们将讨论 C++ STL 中 stack::emplace() 函数的工作原理、语法和示例。

什么是 C++ STL 中的 Stack?

栈是一种后进先出 (LIFO) 的数据结构,我们在栈的顶部进行插入和删除操作,最后一个插入的元素位于顶部。就像一堆盘子一样,如果我们想在栈中添加一个新的盘子,我们把它放在顶部;如果我们想从栈中移除一个盘子,我们也从顶部移除。

什么是 stack::emplace()?

stack::emplace() 函数是 C++ STL 中的内置函数,它在 `` 头文件中定义。emplace() 用于在与该函数关联的栈容器中构造和插入一个元素。

当我们运行此函数时,它会在栈的顶部插入一个新元素,并将新插入的元素设为顶部元素。此函数调用 emplace_back 函数,在顶部插入新元素。

语法

stack_name.emplace(Args& args);

参数

此函数接受以下参数:

  • **args** - 这些是我们想要放置的参数。

返回值

此函数不返回任何值。

**输入**

std::stack<int> stack1;
stack1.emplace(1);
stack1.emplace(2);
stack1.emplace(3);

**输出**

3 2 1

示例

在线演示

#include <iostream>
#include <stack>
using namespace std;
int main(){
   stack<int> stck;
   stck.emplace(10);
   stck.emplace(20);
   stck.emplace(30);
   stck.emplace(40);
   stck.emplace(50);
   stck.emplace(60);
   cout << "Elements in stack are: ";
   while (!stck.empty()){
      cout<<stck.top() << " ";
      stck.pop();
   }
   return 0;
}

输出

如果我们运行上面的代码,它将生成以下输出:

Elements in stack are: 60 50 40 30 20 10

示例

在线演示

#include <iostream>
#include <stack>
using namespace std;
int main(){
   stack<int> stck;
   int total = 0;
   stck.emplace(10);
   stck.emplace(20);
   stck.emplace(30);
   stck.emplace(40);
   stck.emplace(50);
   stck.emplace(60);
   cout << "Elements in stack are: ";
   while (!stck.empty()){
      cout<<stck.top() << " ";
      stck.pop();
      total++;
   }
   cout<<"\nTotal number of elements in stack are: "<<total;
   return 0;
}

输出

如果我们运行上面的代码,它将生成以下输出:

Elements in stack are: 60 50 40 30 20 10
Total number of elements in stack are: 6

更新于:2020-04-22

489 次浏览

开启你的职业生涯

通过完成课程获得认证

开始学习
广告