如何使用for循环比较2个向量?

时间:2017-05-03 07:10:11

标签: c++ vector find

我有一个"超出范围"矢量显然,需要帮助捕捉错误。我想在向量中迭代一个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;
}

1 个答案:

答案 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++)

应该解决超出范围的问题