C ++堆棧 emplace()函數(shù)在當(dāng)前頂部元素上方的堆棧頂部添加一個(gè)新元素?,F(xiàn)在,我們有了一個(gè)已經(jīng)存在元素的堆棧,我們希望在堆棧中插入或推入一個(gè)新元素,為此,我們使用了此函數(shù)。
template <class... Args> void emplace (Args&&... args);
args:參數(shù)轉(zhuǎn)發(fā)用于構(gòu)造新元素的參數(shù)。也就是說(shuō),由args指定的元素將插入到當(dāng)前頂部元素上方的堆棧中?,F(xiàn)在,新插入的元素成為頂部元素,并且所有推入和彈出操作都在其上執(zhí)行。
該函數(shù)僅用于添加新元素,不返回任何值。因此,該函數(shù)的返回類型為void。
//該程序通過(guò)在堆棧頂部添加兩個(gè)簡(jiǎn)單的字符串并進(jìn)行打印來(lái)說(shuō)明emplace函數(shù)的用法。
#include<iostream>
#include<stack>
#include<string>
using namespace std;
int main()
{
stack<string> newstack;
newstack.emplace ("我是第一個(gè)");
newstack.emplace ("我是第二個(gè)");
cout << "newstack的內(nèi)容: \n";
while (!newstack.empty () )
{
cout << newstack.top () << "\n";
newstack.pop ();
}
return 0;
}輸出:
newstack的內(nèi)容: 我是第二個(gè) 我是第一個(gè)
//該程序通過(guò)將11的表插入到,然后分別進(jìn)行打印來(lái)說(shuō)明emplace函數(shù)的用法。
#include<iostream>
#include<stack>
#include<string>
using namespace std;
int main()
{
stack<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");
cout << "newstack的內(nèi)容: \n";
cout << "Table of 11";
while (!newstack.empty())
{
cout << newstack.top() << "\n";
newstack.pop();
}
return 0;
}輸出:
newstack的內(nèi)容: Table of 11121 99 88 77 66 55 44 33 22 11
//該程序通過(guò)在堆棧頂部添加兩個(gè)簡(jiǎn)單的字符串并進(jìn)行打印來(lái)說(shuō)明emplace函數(shù)的用法。
#include<iostream>
#include<stack>
#include<string>
using namespace std;
int main()
{
stack<string> newstack;
newstack.emplace ("我們?cè)谶@里可以看到emplace函數(shù)在堆棧中的應(yīng)用");
newstack.emplace ("函數(shù)添加的新元素位于堆棧的頂部");
while (!newstack.empty () )
{
cout << newstack.top () << "\n";
newstack.pop ();
}
return 0;
}輸出:
函數(shù)添加的新元素位于堆棧的頂部 我們?cè)谶@里可以看到emplace函數(shù)在堆棧中的應(yīng)用
對(duì)emplace_back進(jìn)行了一次調(diào)用。該函數(shù)用于插入新元素,這是通過(guò)進(jìn)行一次調(diào)用來(lái)完成的。
堆棧中存在的所有元素均被修改。由于該元素被添加到頂部,因此所有其他元素的相應(yīng)位置也發(fā)生了變化。
提供與在底層容器對(duì)象上執(zhí)行的操作等效的保證。