C++ Stack emplace() 函数在当前栈顶元素上方的栈顶添加一个新元素。现在,我们有一个已经存在元素的堆栈,我们希望在堆栈中插入或推送一个新元素,为此我们使用这个函数。
用法
template <class... Args> void emplace (Args&&... args);
参数
args:参数转发构造新元素的参数。即由 args 指定的元素被插入堆栈中当前顶部元素的上方。新插入的元素现在成为顶部元素,并在其上执行所有推送和弹出操作。
返回值
该函数仅用于添加新元素,不返回任何值。因此函数的返回类型是void。
例子1
//程序通过在栈顶添加两个简单的字符串并打印它们来说明emplace函数的使用。
#include<iostream>
#include<stack>
#include<string>
int main()
{
std::stack<std::string> newstack;
newstack.emplace (?I am the first line?);
newstack.emplace (?I am the second one?);
std::cout << ?Contents of newstack:\n?;
while (!newstack.empty () )
{
std::cout << newstack.top () << ?\n?;
newstack.pop ();
}
return 0;
}
输出:
Contents of newstack: I am the second one I am the first line
例子2
//程序通过在上面插入11的表格然后分别打印来说明emplace函数的使用。
#include<iostream>
#include<stack>
#include<string>
int main()
{
std::stack<std::string> newstack;
newstack.emplace (?11?);
newstack.emplace (?22?);
newstack.emplace (?33?);
newstack.emplace (?44?);
newstack.emplace (?55?);
newstack.emplace (?66?);
newstack.emplace (?77?);
newstack.emplace (?88?);
newstack.emplace (?99?);
newstack.emplace (?121?);
std::cout << ?Contents of newstack:\n?;
std::cout <<?Table of 11?;
while (!newstack.empty () )
{
std::cout << newstack.top () << ?\n?;
newstack.pop ();
}
return 0;
}
输出:
Contents of newstack: Table of 11121 99 88 77 66 55 44 33 22 11
例子3
//程序通过在栈顶添加两个简单的字符串并打印它们来说明emplace函数的使用。
#include<iostream>
#include<stack>
#include<string>
int main()
{
std::stack<std::string> newstack;
newstack.emplace ("We are here to see the application use of emplace function in stacks");
newstack.emplace ("The function adds new elements are the top of the stack");
while (!newstack.empty () )
{
std::cout << newstack.top () << "\n";
newstack.pop ();
}
return 0;
}
输出:
The function adds new elements are the top of the stack We are here to see the application use of emplace function in stacks
复杂度
对 emplace_back 进行一次调用。该函数用于插入一个新元素,这是通过进行一次调用来完成的。
数据竞争
堆栈中存在的所有元素都被修改。由于元素被添加到顶部,因此所有其他元素的相应位置也发生了变化。
异常安全
提供等同于对底层容器对象执行的操作的保证。
相关用法
- C++ Stack empty()用法及代码示例
- C++ Stack push()用法及代码示例
- C++ Stack size()用法及代码示例
- C++ Stack pop()用法及代码示例
- C++ Static member用法及代码示例
- C++ String swap()用法及代码示例
- C++ String back()用法及代码示例
- C++ String append()用法及代码示例
- C++ String Assign()用法及代码示例
- C++ String begin()用法及代码示例
- C++ String size()用法及代码示例
- C++ String resize()用法及代码示例
- C++ String Find()用法及代码示例
- C++ String crend()用法及代码示例
- C++ String compare()用法及代码示例
- C++ String empty()用法及代码示例
- C++ String replace()用法及代码示例
- C++ String at()用法及代码示例
- C++ String insert()用法及代码示例
- C++ String clear()用法及代码示例
注:本文由纯净天空筛选整理自 C++ Stack emplace() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。