我正在尝试将顶点添加到现有图形的简单任务,但代码崩溃了:
typedef adjacency_matrix<undirectedS> UGraph;
graph_traits<UGraph>::vertex_descriptor u;
UGraph G(2);
int numOfComponents = 0;
int numOfVertices = 0;
numOfVertices = num_vertices(G); //numOfVertices = 2
vector<int> component(numOfVertices);
numOfComponents = connected_components(G, &component[0]); //numOfComponents = 2
到目前为止看似逻辑 - 两个顶点,没有连接,所以有两个连接的组件。
现在,当我尝试添加顶点时:
u = vertex(3, G); //u=3
add_vertex(u,G); // <--- crashes here
我错过了什么吗?如何将顶点添加到现有图形?删除怎么样?我会在命令remove_vertex(id)
后看到一个较少的顶点吗?
另外,是否可以添加id为100而不是id 3的顶点(不是继续id号..)?
感谢。