Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/141.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ ';向量迭代器不兼容';_C++_Vector_Iterator_Std - Fatal编程技术网

C++ ';向量迭代器不兼容';

C++ ';向量迭代器不兼容';,c++,vector,iterator,std,C++,Vector,Iterator,Std,为什么我会犯这个错误?(如果我没有提供足够的详细信息,请说明)您从未初始化迭代器 std::vector<Enemy*> for(std::vector::iterator it=tracked.begin();it!=tracked.end();it++){ (*it)->更新(timeSinceLastFrame); } 许多实现(例如,您似乎正在使用的VC++)在调试中执行检查,以确保在比较两个迭代器时,它们属于同一个对象。默认构造的迭代器不属于任何特定实例,因此it!=t

为什么我会犯这个错误?(如果我没有提供足够的详细信息,请说明)

您从未初始化迭代器

std::vector<Enemy*>
for(std::vector::iterator it=tracked.begin();it!=tracked.end();it++){
(*it)->更新(timeSinceLastFrame);
}

许多实现(例如,您似乎正在使用的VC++)在调试中执行检查,以确保在比较两个迭代器时,它们属于同一个对象。默认构造的迭代器不属于任何特定实例,因此
it!=tracked.end()
检查将因该错误而失败。

您尚未初始化它。试试这个:

for(std::vector<Enemy*>::iterator it = tracked.begin();it!=tracked.end();it++){
    (*it)->update(timeSinceLastFrame);
}
std::vector::iterator;
for(it=tracked.begin();it!=tracked.end();it++){
(*it)->更新(timeSinceLastFrame);
}
for(std::vector<Enemy*>::iterator it = tracked.begin();it!=tracked.end();it++){
    (*it)->update(timeSinceLastFrame);
}
std::vector<Enemy*>::iterator it;
for(it=tracked.begin();it!=tracked.end();it++){
    (*it)->update(timeSinceLastFrame);
}