一,基操
top: 访问队头元素
empty: 队列是否为空
size: 返回队列内元素个数
push: 插入元素到队尾 (并排序)
emplace: 原地构造一个元素并插入队列
pop: 弹出队头元素
swap: 交换内容
二,< 的重载,按照 dis 的大小升序排序
1,
typedef struct node // 队列里要放的应该是 点的 id 和 distance ,而不是一条边 { int id; int dis;
node(){} node(int a, int b) :id(a), dis(b) {} bool operator <(const node &a)const // < 的重载 { return a.dis < dis; } }st; priority_queue <st>q;
2,
typedef struct node // 队列里要放的应该是 点的 id 和 distance ,而不是一条边 { int id; int dis;
node(){} node(int a, int b) :id(a), dis(b) {} friend bool operator <(const node &a,const node &b) // < 的重载 { return a.dis > b.dis; } }st; priority_queue <st>q;
1,2 等效,为升序
========== ========= ======== ======= ====== ====== ==== === == =
连自己喜欢什么都不敢尝试的话,终究连自己都看不起自己