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

C++ c++;:没有正确地进入for循环,c++,debugging,for-loop,C++,Debugging,For Loop,这两个函数是我的cpp文件的一部分。 向量类型为类类型(WordInText) 当我的程序进入这些循环时,它会在一个循环内退出。我怀疑您想要: iter!=wordintext_vec.end() 而不是: iter

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

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

我怀疑您想要:

iter!=wordintext_vec.end()

而不是:


iter

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

要解决这个问题,只需与“不平等”进行比较:

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

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

您应该能够执行以下操作(伪代码):

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

{

错误逻辑(“向量为空”)


}

请粘贴代码,而不是屏幕截图。如果向量中有1项,循环将只运行一次。添加更多项目以使其运行更长时间。
for(vector<WordInText>::const_iterator iter = wordintext_vec.begin(); iter != wordintext_vec.end(); ++iter) {
    // ...
}