C ++ STL中堆栈的emplace()方法

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

什么是C ++ STL中的堆栈?

堆栈是将数据存储在LIFO(后进先出)中的数据结构,在该位置我们从最后插入的元素的顶部进行插入和删除。就像一堆板子一样,如果我们想将新的板子推入栈中,我们会在顶部插入,如果我们想从板子中取出该板子,那么我们也会从顶部将其删除。

什么是stack::emplace()?

stack::emplace()函数是C ++ STL中的内置函数,该函数在<stack>头文件中定义。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