我显然有一个“超出范围”的向量,并且需要帮助来捕获错误。我想使用向量中的每个元素遍历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;
}
最佳答案
您使用以下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++)
应该解决超出范围的问题