簡體   English   中英

從std :: list刪除對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM