C++ Queue emplace()
C++ Queue emplace()函数
C++ Queue emplace()函数在队列的末尾,在当前back元素之后添加一个新元素。该函数在队列上执行插入操作。
语法
template <class... Args> void emplace (Args&&... args);
参数
args : 该参数转发用于构造新元素的参数。它指定了新构造元素的值,该元素将插入到结束位置。
返回值
该函数仅用于添加新元素,不返回任何值。
示例1
#include<iostream>
#include<queue>
#include<string>
int main()
{
std::queue<std::string> newqueue;
newqueue.emplace("I am the first line");
newqueue.emplace("I am the second one");
std::cout << "Contents of new queue: \n";
while (!newqueue.empty())
{
std::cout << newqueue.front() << "\n";
newqueue.pop ();
}
return 0;
}
输出:
I am the first line
I am the second one
示例2
#include<iostream>
#include<queue>
#include<string>
using namespace std;
int main()
{
queue<string> newpqueue;
newpqueue.emplace("portal");
newpqueue.emplace("computer science");
newpqueue.emplace("is a");
newpqueue.emplace("lidihuo");
cout << "newpqueue = " ;
while(!newpqueue.empty( ) )
{
cout<< newpqueue.front() << " ";
newpqueue.pop();
}
return 0 ;
}
输出:
lidihuo is a computer science portal
复杂度
对emplace_back进行了一次调用。
数据竞争
存在的所有元素队列中的元素被修改,因为添加了新元素,所有其他元素的相应位置也被更改。
异常安全
提供与在基础容器对象上执行的操作等效的保证。