【问题标题】:Vectors to Priority_queue in STL c++STL c ++中到Priority_queue的向量
【发布时间】:2021-09-26 08:02:42
【问题描述】:
如何将向量 v 转换为 priority_queue pq?
就像我们可以做的那样-
for(int i=0;i<(int)v.size();i++) pq.push(v[i]);
但是有没有可能让它更简短更简洁?
【问题讨论】:
标签:
c++
vector
stl
priority-queue
【解决方案1】:
priority_queue<int>pq(begin(stones),end(stones));
【解决方案2】:
如果你使用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() );