小编muq*_*waz的帖子

通过DFS在图形中查找强连接组件

我正在阅读关于BFS和DFS的图算法.当我分析通过DFS在Graph中查找强连通分量的算法时,我想到了一个疑问.为了找到强连通分量,什么书(Coremen)做,首先它在图上运行DFS以获得顶点的结束时间然后再次按照完成时间的降序在图的转置上运行DFS我们从第一个DFS得到的.但是我无法理解为什么第二个DFS必须按照完成时间运行.我的意思是即使我们直接在图的转置上运行DFS(忽略完成时间),它是否也给了我们连接的组件,因为通过转置我们已经阻止了到其他组件的路径.

algorithm graph

9
推荐指数
1
解决办法
1万
查看次数

从矢量中删除元素,如果它们也在另一个矢量中

假设我有一个vector a = {"the", "of"}和一个vector b = {"oranges", "the", "of", "apples"}.

我想比较这两个向量和删除元素a也被加b.这就是我想出的:

for (int i = 0; i < a.size(); i++) {
    for (int j =0; j < b.size(); j++) {
       if (a[i] == b[j]) {
          a.erase(a.begin() + i);
       }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是这个循环并没有删除最后一个元素a.奇怪的!

c++ vector erase

5
推荐指数
2
解决办法
2875
查看次数

标签 统计

algorithm ×1

c++ ×1

erase ×1

graph ×1

vector ×1