用c++打印列表

Print a list in c++

本文关键字:列表 打印 c++      更新时间:2023-10-16

我有以下结构:

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

如何打印列表中的所有人员?我创建了几个主要的人,并试图打印他们,但我得到了错误。

    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.

这应该能解决你的问题。