簡體   English   中英

在 C++ 中打印列表

[英]Print a list in c++

我有以下結構:

struct People{
    string name;    
    string surname; 
    string number;  
};

如何打印列表中的所有人? 我在 main 中創建了幾個人並嘗試打印它們,但出現錯誤。

    int main(int argn, char** args) {

        list<People> test_list;

        People first;
        first.name= "Name1";
        first.surname= "Surname1";
        first.number= "E1234567";
        test_list.push_back(first);

        People second;
        second.name= "Name2";
        second.surname= "Surname2";
        second.number= "E2345678";
        test_list.push_back(second);

        People third;
        third.name= "Name3";
        third.surname= "Surname3";
        third.number= "E3456789";
        test_list.push_back(third);

        list<People>::iterator i;
            for( i = test_list.begin(); i != test_list.end(); ++i)
                cout << *i << " ";
            cout << endl;

        return 0;
    }

有人知道打印列表的正確方法嗎?

您應該定義std::ostream& operator<<(std::ostream&,const People&) ,它應該簡單地打印 People 實例中的數據。

試試這個來打印詳細信息:

cout << i->name << " "<< i->surname << " "<< i->number << " ";

我假設,您正在嘗試打印結構變量。在 for 循環內,您指定了指向列表中每個元素的指針。 但是您還沒有指定結構內的元素。 所以,為此,

count<<(*i).name<<endl; // for printing name

或者,您也可以像這樣使用->

count<<i->name; // for printing name.

這應該可以解決您的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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