标签:style blog io color ar os 使用 for sp
使用标准模板库(STL)中的标准模板 std::vector,可以让我快速的使用邻接链表。一些基本的用法如下:
#include <iostream> #include <stdio.h> #include <vector> using namespace std; struct Edge{ //定义结构体,用来表示一条边 int nextNode; //下一个结点的编号 int cost; //该边的权重 }; int main() //利用vector来实现邻接链表中的应用 { vector<Edge> edge[10]; //定义一个数组,数组中的元素是向量 for(int i=0;i<=9;i++){ //初始化 edge[i].clear(); } Edge temp1; temp1.nextNode=3; temp1.cost=39; edge[1].push_back(temp1); //将该边加入到结点1的单链表中 Edge temp2; temp2.nextNode=4; temp2.cost=24; edge[1].push_back(temp2); //将该边加入到结点1的单链表中 Edge temp3; temp3.nextNode=5; temp3.cost=16; edge[1].push_back(temp3); //将该边加入到结点1的单链表中 edge[1].erase(edge[1].begin()+2,edge[1].begin()+3); //删除与结点1相邻的结点, //参数为(vector.begin()+i,vector.begin()+i+1) //i为要删除的结点编号(相当于数组下标) //比如此时要删除与结点1相邻的第3个结点(从0开始) for(int i=0;i<=edge[1].size()-1;i++){ //遍历与结点1相邻的所有结点 int nextNode=edge[1][i].nextNode; //到这儿就相当于2维数组了 int cost=edge[1][i].cost; printf("%d %d\n",nextNode,cost); } return 0; }
标签:style blog io color ar os 使用 for sp
原文地址:http://www.cnblogs.com/Murcielago/p/4077027.html