我在c ++中构建一个图形作为整数向量的向量
vector<vector<int> > graph;
我的问题是:
图表是双向的,这意味着
if G[u] contains v, G[v] contains u
我需要能够
remove any element v from G[u]
remove u from G[v]
在不变的时间。
这次删除是一项我将要重复的操作,因此单个地图无法正常工作,因为当我删除一个元素时,其他元素会返回一个索引。
我想删除边(例如G [u]的最后一个索引,所以我可以使用pop_back并得到O(1)),然后删除另一个顶点中的相应边缘&# 39; adjacence vector(,因为这不是我编写的算法的主要问题,它算法必须在线性时间内运行,我认为必须有一种方法使这个操作保持不变)