相关疑难解决方法(0)

优先队列实现说明

我正在阅读《竞争性编程 1》一书中的 Dijkstra 算法。在实现程序中,他们写了这样的内容:

#define pair<int,int> ii;
priority_queue< ii,vector<ii>,greater<ii> > pq ;
Run Code Online (Sandbox Code Playgroud)

如果我们将整数 s 作为源,则实现显示像这样推送对 (cost,source)(节点编号从 1 到 n):

pq.push(ii(0,s)) ;
Run Code Online (Sandbox Code Playgroud)

我的问题是我们正在将一对成本和节点放入优先级队列中。但是其他两个参数(即向量和更大)在priority_queue声明中做什么呢?

priority_queue< ii,vector<ii>,greater<ii> > pq ;
Run Code Online (Sandbox Code Playgroud)

我尝试声明类似的内容:

priority_queue< ii > pq ;
Run Code Online (Sandbox Code Playgroud)

并且代码有效(在我尝试过的那些测试用例上)。

谁能告诉我该声明的含义:

priority_queue< ii,vector<ii>,greater<ii> > pq ;
Run Code Online (Sandbox Code Playgroud)

上面的声明和上面的声明有什么区别

priority_queue< ii > pq ;
Run Code Online (Sandbox Code Playgroud)

宣言 ?

c++ dijkstra

3
推荐指数
1
解决办法
1108
查看次数

标签 统计

c++ ×1

dijkstra ×1