2014-12-12 2 views
0

Я пытаюсь использовать ускорение C++ для создания графика из входного файла, и в настоящее время у меня есть векторы с именами вершин и весами ребер, хранящимися в них.Как использовать boost vertex_descriptors?

Я знаю, как добавить вершины с помощью:

typedef boost::graph_traits <Graph>::vertex_descriptor Vertex 

Vertex v1 = add_vertex(string("v1"), g); 
Vertex v2 = add_vertex(string("v2"), g); 
Vertex v3 = add_vertex(string("v3"), g); 

Но как я могу сделать так, чтобы новая вершина будет создана и добавлена ​​к графике для каждого элемента в моем векторе?

+0

PSST. какой вектор? 'for (auto s: v) {add_vertex (s, g); } '? – sehe

+0

Также есть некоторые примеры чтения графиков из текстовых файлов на этом сайте. Я знаю, потому что я написал с ними несколько ответов – sehe

+0

@sehe, на самом деле я, возможно, неправильно сформулировал свой вопрос, но мне было интересно, как использовать функцию add_edge, которая требует двух дескрипторов вершин в качестве параметров. – user3543260

ответ

1

Я буду иметь, чтобы сделать некоторые догадки, но здесь идет:

for (auto& edge : my_edges_vector) 
{ 
    vertex_descriptor sd = g[edge.source_vertex_id]; 
    vertex_descriptor td = g[edge.target_vertex_id]; 
    double weight = edge.weight; 

    add_edge(g, sd, td, weight); 
}