C/C++基础知识3

来源:互联网 发布:ogame银河帝国源码 编辑:程序博客网 时间:2024/06/01 10:23
priority_queue<pair<int,int>, 
vector<pair<int,int>>, 
greater<pair<int,int> > > dq;这是一个优先队列  其中三个模版参数第一个pair<int,int>是一个双值对,有first和second,
用于优先队列的优先级,实际存储的应该是两个点去和来两个的优先级(距离)第二个vector<pair<int,int>>,是一个双值的容器,存储两个点互相的距离第三个是用于标识这个优先队列排序的,greater是从小到大struct Node{Node(int num,int dis):num(num),dis(dis){}这个是定义一个struct,里面的构造函数自动调用了num(num)和dis(dis)进行初始化void Dijkstra(vector<vector<Node> >& g) {pair<int,int>tp;这个是迪杰斯特拉算法主函数,参数vector<vector<Node> >& g和vector<vector<Node> > gm一样,是一个容器的容器存储的是所有的点到其他点的距离(N*N)就是说这个容器里面的元素还是一个容器,内层的容器存的是某个点到所有点的距离外层的容器就存的是(某个点到所有点的距离)的集合