Home C&C++函数库 c++ 语法 程序源码 Linux C库

std::

priority_queue::emplace

公共成员函数   <queue>

template <class... Args> void emplace (Args&&... args);

构造并且插入元素

向priority_queue中添加一个新元素。 这个新元素以传递参数作为其构造函数的参数构造。

该成员函数调用底层容器的成员函数emplace_back,传递args, 然后通过在包含容器的所有元素的范围内调用push_heap算法,将其重新排序到其在堆中的位置。

☲  参数


args
用于构造新元素的参数。

☉  返回值



none

☣  示例



// priority_queue::emplace
#include <iostream>       // std::cout
#include <queue>          // std::priority_queue
#include <string>         // std::string

int main ()
{
  std::priority_queue<std::string> mypq;

  mypq.emplace("orange");
  mypq.emplace("strawberry");
  mypq.emplace("apple");
  mypq.emplace("pear");

  std::cout << "mypq contains:";
  while (!mypq.empty())
  {
     std::cout << ' ' << mypq.top();
     mypq.pop();
  }
  std::cout << '\n';

  return 0;
}

输出:
mypq contains: strawberry pear orange apple

✥ 复杂度



在底层容器上调用一次emplace_back,在包含底层容器所有元素的范围上调用一次push_heap。

⇄ 数据竞争


容器及其包含的所有元素都被修改。

☂ 异常安全性



提供与在基础容器对象上执行的操作相同级别的保证。

🍄  另请参阅



priority_queue::pop 删除顶部元素(公众成员函数)
priority_queue::push 插入元素(公众成员函数)

联系我们 免责声明 关于CandCplus 网站地图