我正在使用一個QList,我想迭代器雖然它,但我從它得到的迭代器保持失敗,即使我使用自動關鍵字或不。QList :: iterator只返回(錯誤)0
for(auto iter = myModel->getList().begin(); iter != myModel->getList().end(); ++iter)
{
if((*iter)->getList().empty())
{
if((*iter)->getData()->getCode() == baseData->getCode())
return true;
}
}
return false;
有沒有人知道爲什麼會發生這種情況?還是有一種不同的方式來使用QList :: iterator?
EIDT: 我注意到另一個奇怪的事情。我確實看到迭代器顯示(錯誤)爲0,這很奇怪,因爲它實際上包含我需要的數據。
但是,如果我修改我的代碼看起來像這樣:
QList<T*> tempList = myModel->getList();
for(auto iter = tempList .begin(); iter != tempList .end(); ++iter)
{
if((*iter)->getList().empty())
{
if((*iter)->getData()->getCode() == baseData->getCode())
return true;
}
}
return false;
然後一切工作正常。我想這是一個解決方案,但有誰知道爲什麼需要這樣做?或者我只是沒有看到一些非常重要的東西?
究竟返回0?這些變量的類型是什麼,你確定myModel-> getList()返回你想要的嗎? – 2011-05-03 17:53:58
它是一個QList :: iterator和myModel-> getList()返回一個QList ,所以當我使用begin()時,它應該給我myModel-> getList()的迭代器。無論哪種方式,因爲我使用的是auto關鍵字,只要getList()返回一個QList,它應該是一個迭代器到某個列表 –
Keerigan
2011-05-03 17:57:49