-1
我很難編碼這個(或者甚至搞清楚如何編碼這個)。我有一個節點列表。每個節點都包含多個值,但我唯一關心的是一個字符串。使用節點值在列表中搜索節點
當我添加節點到我的列表中時,我需要驗證我創建的節點不存在。如果確實存在,我需要訪問它並修改其中的某些內容。這裏是我的代碼到目前爲止:
int _tmain(int argc, _TCHAR* argv[])
{
list<Noeud*> * liste = new list<Noeud*>;
const string fichierDonnees = "Test01.txt";
ifstream fichier;
fichier.open(fichierDonnees);
if (!fichier.is_open()) {
cerr << ConvertirAccents("ERROR OPENING FILE ") << fichierDonnees << endl;
return -1;
}else{
std::ifstream file(fichierDonnees);
std::string str;
int counter=0;
while (std::getline(file, str))
{
Noeud * temp = new Noeud(str);
//verify if liste has the node temp;
}
}
fichier.close();
_getch();
return 0;
}
謝謝!
您需要遍歷列表並檢查每個節點。如果您找到該節點,然後編輯它的內容。如果您沒有找到它,請使用正確的內容在列表中創建一個新節點。 –
我不認爲我是在要求某人給我寫一份清單,我已經寫了清單並實施了它的功能。我只是不知道如何使用迭代器並通過它。我認爲超載==,但這並沒有工作,或者 – user3232709
我已經想出瞭如何使用這個迭代器: [code] for(std :: list :: iterator itera = liste.begin(); it!= liste.end(); ++ it) std :: cout <<''<< * it; [/ code] 我只是不明白爲什麼itera不是Noeud *,我不能使用 - >或者訪問它裏面的任何東西。 –
user3232709