我试图实现使用增强的图形有三个不同的载体矢量图形:实现使用升压
std::vector<std::string> vertex_array;
std::vector<Edge> edge_array;
std::vector<int> weight_array;
边缘被定义为:
typedef std::pair<std::string, std::string> Edge;
和我的图被定义为:
typedef adjacency_list<vecS, vecS, undirectedS> Graph;
的阵列都填充有我从输入文件得到的数据,所以在所述第一元件顶点向量将是类似于“A”的东西,边缘向量中的第一个元素将是类似于(B,C)的东西,并且权重向量中的第一个元素将是边缘向量中的第一个边的权重,或BC这个案例。
问题是,我不是很流利的C++,而我也是新的提升和图形。我试着在boost网站上查看示例代码,但他们都使用数组而不是向量。我没有尝试这个例子代码:
Graph g(edge_array, edge_array + sizeof(edge_array)/sizeof(Edge), num_vertices);
和我有一个为num_vertices变量,但它仍然是给我的错误。
有谁知道如何创建一个边缘,顶点和权重的矢量图,我最终能够使用Dijkstra的增强版?
对不起,如果这个问题确实是模糊或基本的,我真的不知道使用boost和实现图的任何事情。
尝试'图G(edge_array [0],&edge_array [0] + edge_array.size(),为num_vertices);' – 2014-12-11 03:04:43
@MattMcNabb它摆脱了红色波浪线,但它给我的编译器错误C2182:非法使用类型'void' – user3543260 2014-12-11 03:44:26