这道题可以用堆实现,不过利用优先队列是更简单的方法(实际上,优先队列的底层实现就是二叉堆),需要注意结构体的比较符号的重载,下面的代码里给出了重载的两种方式: #include<iostream> #include<cstdio> #include<queue> #include<stdio.h> #include<string> using namespace std; struct Complex { int x,y; Complex(int x,int y):x(x),y(y){} //重载比较符号 ...