c ++:没有正确进入for循环

时间:2012-05-09 21:20:41

标签: c++ debugging for-loop

for loops

这两个函数是我的cpp文件的一部分。 矢量类型是类类型(WordInText)。

当我的程序进入这些循环时,它会在一个循环中退出。

3 个答案:

答案 0 :(得分:7)

我怀疑你想要:

iter != wordintext_vec.end()

而不是:

iter < wordintext_vec.end()

答案 1 :(得分:2)

你正在以错误的方式做循环条件。不要比较“小于”,而不是“不相等”。返回的迭代器在比较时将像指针一样工作,导致未定义的行为(即循环可能在到达结束之前的任何时间结束)。

要解决此问题,只需与“不相等”进行比较:

for(vector<WordInText>::const_iterator iter = wordintext_vec.begin(); iter != wordintext_vec.end(); ++iter) {
    // ...
}

答案 2 :(得分:0)

首次输入此方法时,请检查向量中是否包含元素。

您应该可以执行类似(伪代码)的操作:

if(wordintext_vec.length == 0)或if(wordintext_vec.isnull())

{

ERROR_LOGIC(“Vector为空”);

}