这两个函数是我的cpp文件的一部分。 矢量类型是类类型(WordInText)。
当我的程序进入这些循环时,它会在一个循环中退出。
答案 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为空”);
}