我已經寫了下面的功能自定義搜索功能,它需要一個「塊」作爲參數,在塊的「LRU」列表中的「塊」的搜索。這裏「塊」是類「塊」的一個實例。以下是「LRU」的宣言:工作不正常
list<Block> lru;
而以下是我的搜索功能:
int LRU::searchLRU(Block block)
{
if (lru.size() == 0)
{
lru.push_back(block);
return 1;
}
list<Block>::iterator i;
for (i = lru.begin(); i != lru.end(); i++)
{
if (i->get_set() == block.get_set() && i->get_index() == block.get_index())
{
lru.push_back(block);
lru.erase(i);
return 2;
}
}
if (lru.size() == size)
{
lru.pop_front();
lru.push_back(block);
return 3;
}
}
但問題是有時函數返回「0」。由於我的整體計劃無法正常運作。 我覺得我已經處理了所有的情況。
有人能指出錯誤,或者爲什麼該函數返回「0」。
編譯器應該已經向您沿着線的東西:「*警告:在函數沒有返回語句,返回非void *」除非你關閉警告。 –