在 STL c++ 中指向 Priority_queue 的向量

Vectors to Priority_queue in STL c++

如何将向量 v 转换为 priority_queue pq? 就像我们可以做的那样-

for(int i=0;i<(int)v.size();i++) pq.push(v[i]);

但是有没有可能让它更简短一些呢?

如果你使用vector作为内部容器(这是默认的),那么你可以简单地使用下面的构造函数:

template< class Alloc > 
priority_queue( const Compare& compare, const Container& cont,
                const Alloc& alloc );

否则,您可以使用接受一对迭代器的构造函数:

template< class InputIt >
priority_queue( InputIt first, InputIt last,
                const Compare& compare = Compare(),
                Container&& cont = Container() );
priority_queue<int>pq(begin(stones),end(stones));