[英]Removing an object from std::list
我想知道如何從C ++列表中刪除對象-我正在嘗試創建一個圖書管理軟件,並且我想在數據庫(列表)中具有一個從中刪除圖書的功能,是一個傳遞的對象。 我正在考慮此解決方案,但它無法正常工作-似乎==運算符未正確重載? 也許此解決方案行不通?
class Database
{
list <Books> mybooks;
public:
void BookDel(Books & temp)
{
mybooks.remove(temp);
}
}
也許此解決方案行不通?
只要Book
對象與operator==
相當,此解決方案就應該起作用。
但它不起作用-似乎==運算符未正確重載?
如果操作員沒有適當地過載,那肯定是問題所在。 您應該更深入地研究它如何不起作用。 這將使您了解為什么它不起作用,這將引導您找到解決方案。
我的==重載是錯誤的,因此我已對其進行了糾正,現在似乎可以正常工作了。 這是我的Books類代碼:
class Book {
public: bool operator==(const Book & a) const
{
bool test=false;
if(!(this->tytul.compare(a.tytul)))
test=true;
return test;
}
protected:
list <Autor> authors;
string tytul;
public:
void AddAuthor(Autor x)
{
authors.push_back(x);
}
Books(string tytulx)
{
tytul = tytulx;
}
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.