QList를 사용하고 있지만 iterator를 사용하고 싶지만 auto 키워드를 사용하더라도 iterator는 실패합니다.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 : 나는 이것에 관해 또 다른 이상한 점을 알아 차렸다. iterator가 (오류) 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()가 원하는 것을 반환하는지 확인하십시오. –
iter는 QList :: iterator이고 myModel-> getList()는 QList 을 반환하므로 begin()을 사용할 때 iterator를 myModel-> getList()에 제공해야합니다. 그리고 어느 쪽이든, getList()가 QList를 반환하는 한 자동 키워드를 사용하기 때문에 iter는 일부 목록의 반복자 여야합니다. –
Keerigan