所以我一直在嘗試過濾我的列表。該列表已正確創建並填充,但我從文檔中獲取了兩次條目。它應該是這樣的。現在我正在嘗試將它們過濾出來,並且我認爲我有一個很好的想法,但它不能正常工作。從單個鏈接列表中刪除值
Anmeldung* delete_object(Anmeldung* b){
Anmeldung* tmp = b;
b = b->next;
delete(tmp);
return b;
}
void filter_list(Anmeldung* b){
Anmeldung* tmp = b;
while(b!=NULL){
std::string info = b->Matrikelnummer;
while(tmp!=NULL){
if(tmp->Matrikelnummer == info){
tmp = delete_object(tmp);
}else
tmp = tmp->next;
}
b = b->next;
tmp = b;
}
}
所以我想遍歷我的列表,並將每個值與整個列表進行比較。我正在尋找的價值是Matrikelnummer
如果兩個人得到相同的Matrikelnummer一個被刪除。
這是我的結構Anmeldung。這是從我的教授提供:
struct Anmeldung {
Anmeldung* next;
std::string Nachname; // Name Teilnehmer
std::string Vorname; // Vorname Teilnehmer
std::string Email; // Email Adresse Teilnehmer
std::string Matrikelnummer; // Matrikelnr. Teilnehmer
std::string Studienrichtung; // Studienrichtung Teilnehmer
std::string Semester; // Studiensemester Teilnehmer
std::string G1name; // Name Wunschkandidat fuer Praktikumsgruppe
std::string G1vorname; // Vorname Wunschkandidat
std::string Anmerkung; // Freier Text
};
我覺得while
循環是正確的,delete_object
是錯誤的,但我看不到的地方或如何。 我不允許使用容器列表或類似的東西。我只有結構。所以沒有雙鏈表沒有。
但我重新分配'tmp'與我的delete_object或?所以tmp應該具有以下對象的值?沒有一個具有相同價值的'Matrikelnummer' –
很遺憾,德語單詞「註冊」聽起來像英語短語「動物糞」... –