打印列表中的元素

时间:2013-11-22 23:24:47

标签: c++ list loops

Book Administrator::bookDetails()
{
    Book book;
    list<Book> books;

    string title;
    string author;
    int ISBN;

    string userInput;

    while (userInput != "q")
    {
        cout << "Would you like to enter a book?" << endl;
        cin >> userInput;
        if (userInput == "yes")
        {
            cout << "What is the title of the book you want to enter?" << endl;
            cin >> title;

            cout << "What is the author of the book you want to enter?" << endl;
            cin >> author;

            cout << "What is the ISBN of the book you want to enter?" << endl;
            cin >> ISBN;

            book.setTitle(title);
            book.setAuthor(author);
            book.setISBN(ISBN);

            books.push_back(book);

        }

        list<Book>::iterator pos;
        pos = books.begin();

        for (pos = books.begin(); pos != books.end(); pos++)
        {
                    //There error is produced here
            cout << *pos << "\n";
        }

    }
    return book;
}

这是我的管理类的bookDetails功能。它循环并询问书籍标题,作者和ISBN号,当它完成时,它将书推到列表上。

当我调试它时,这似乎工作正常,但当我尝试使用迭代器打印出每本书的详细信息时,我收到错误。

任何人都可以帮助我吗? 感谢

1 个答案:

答案 0 :(得分:2)

您需要为operator<<

实施Book
std::ostream operator<<(std::ostream& os, const Book& book)
{
   os << book.title << " " << book.author; // print out other information
   return os;
}