私は次の機能を持っています:
ItemSet* Library::itemsForKeyword(const string& keyword)
{
ItemSet temp;
for(it=bookList.begin();it!=bookList.end();it++){
if(it->getPtr()->findKeyWord(it->getPtr()->keywordsList, keyword))
temp.insert(*it);
}
ItemSet* temp2 = &temp;
return temp2;
}
ItemSet は、派生クラスのインスタンスへのポインターを含む ItemPtr のインスタンスを含むセットです。'it' は Library で定義された反復子です。findKeyWord は、keywordsList をキーワードと比較して、そのキーワードがそのリストにあるかどうかを判断する関数です。true が返された場合は、イテレータを逆参照し、現在反復中のインスタンスを temp に追加します。私の問題は、ループが完了するとtemp2を返しますが、空を返し、印刷関数が印刷しようとするとエラーが発生することです。なぜ空に戻るのですか?ありがとう。