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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。