<分区>
我已经编写了一些代码来检测强连通分量。它运行良好,但有一个警告:
warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
我知道这是针对以下臭名昭著的代码片段(如本 SO answer 中所指出的):
int i; //instead of size_t i;
vector< int > sorted;
...
for(i=sorted.size()-1; i>=0; --i) {
...
}
但是我该如何摆脱这个警告呢?如果我写 size_t i;
,那么我会得到一个段错误(以及在线判断的时间限制,为此编写了代码)。如果我使用 int i;
那么我会收到上面的警告(我对此感到不舒服,我的教授也是)。
那么,有什么变通办法吗?
编辑:代码在将 i
声明为 int
时运行良好。没有 vector 超过(或低于)流量。另外,我确实理解为什么会出现段错误。我的问题恰恰是,我该如何规避它(没有任何警告)?