我有一个"超出范围"矢量显然,需要帮助捕捉错误。我想在向量中迭代一个find函数,在另一个向量中检查。
for(int i=1201; i <= memoryQueue.size(); i++){
//cacheLookUp = find(cacheQueue.begin(), cacheQueue.end(),memoryQueue.at(i));
//while(cacheLookUp != cacheQueue.end()){
if(find(cacheQueue.begin(), cacheQueue.end(), memoryQueue.at(i)) != cacheQueue.end()){ // <<-- Problem here
cacheHit++;
}
else{
cacheMiss++;
}
//}
cout << "Element in memeory: " << i << endl;
}
答案 0 :(得分:1)
您使用以下for循环:
for(int i=1201; i <= memoryQueue.size(); i++)
当您尝试在上次迭代中访问memoryQueue
时
i = memoryQueue.size()
使用memoryQueue.at(i)
它只是超出范围(记住位置从0开始)
即使我不确定你想要达到的目的,
for(int i=1201; i < memoryQueue.size(); i++)
应该解决超出范围的问题