Как я объяснил ранее сегодня у вашего графа нет индекса вершины. Если вы хотите, чтобы он был, вы должны добавить его самостоятельно.
Live On Coliru
#include <boost/graph/adjacency_list.hpp>
struct MyVertex {
int id;
std::string name;
};
using graph_t = boost::adjacency_list<boost::vecS, boost::listS, boost::undirectedS, MyVertex>;
using Vertex = graph_t::vertex_descriptor;
int main() {
graph_t g;
auto v0 = add_vertex(MyVertex{0, "zero"}, g);
auto v1 = add_vertex(MyVertex{1, "one"}, g);
auto v2 = add_vertex(MyVertex{2, "two"}, g);
auto v3 = add_vertex(MyVertex{3, "three"}, g);
auto v4 = add_vertex(MyVertex{4, "four"}, g);
for (auto [from, to] : { std::pair { v0, v1 }, { v0, v2 }, { v1, v2 }, { v3, v4 }, { v1, v3 }, { v1, v4 } }) {
add_edge(from, to, g);
}
}
Теперь вы можете использовать идентификатор в качестве индекса вершины:
auto index = get(&MyVertex::id, g);
PS. В C ++ 11 пишите
for (auto p : std::vector<std::pair<Vertex, Vertex> > { { v0, v1 }, { v0, v2 }, { v1, v2 }, { v3, v4 }, { v1, v3 }, { v1, v4 } }) {
add_edge(p.first, p.second, g);
}
В C ++ 03 напишите: Live On Coliru