std::priority_queue::push
在priority_queue
中插入新元素。此新元素的内容初始化为val。
此成员函数有效地调用底层容器对象的成员函数push_back
,然后通过调用包含所有元素的范围的push_heap
算法将其重新排序到堆中的位置。容器。
现在,当我们制作自己的priority_queu
并指定container
not in C++ STL
并且没有push_back
函数时,std::priority_queue::push
将如何工作...?
答案 0 :(得分:4)
您Container
模板的std::priority_queue
必须满足SequenceContainer
要求,并提供front()
,push_back()
和pop_back()
。没有它们,代码将无法编译,只是以下代码无法编译的方式。
template <typename T>
class Fail
{
public:
Fail() {a.make();}
private:
T a;
};
int main()
{
Fail<int> fail_int;
return 0;
}