2016-03-22 12 views
-2

内のリスト:私は、リスト内のすべての人々を印刷することができますどのように印刷私は、以下の構造を有するC++

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; 
    } 

リストを印刷する方法を知っている人はいますか?

+0

人がリストに保存されている場合、なぜそれが重要ですか? – juanchopanza

+2

最近私のクリスタルボールが壊れていました。あなたの質問に正確なエラーを指定できますか? – StoryTeller

+0

あなたの意見で ''私は何をすべきですか? – user463035818

答えて

1

詳細を印刷するために、これを試してみてください:

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

std::ostream& operator<<(std::ostream&,const People&)を定義する必要があります。単純にPeopleインスタンス内にデータを出力するだけです。

-1

私はあなたが構造体の変数を表示しようとしていると仮定します。forループの内側では、リストの各要素を指しているポインタを指定しています。しかし、あなたは構造内の要素を指定していません。だから、そのために、

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

また、また、あなたの問題を解決する必要があり、この

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

このよう->を使用することができます。

+1

'*(i-> name)'これは '(* i).name'または' i-> name'です。 – DimChtz

+0

私はすでにその答えを返しました – DimChtz

+0

@DimChtzを訂正していただきありがとうございます –

関連する問題