Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » vector auf struct

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
29.05.2009, 13:06 Uhr
buchkogler



Hallo! Ich habe folgendes Problem:
Hab einen vector auf ein struct erstellt: std::vector<arp_table> arp_table_vector_;
Ich will jetzt bestimmte Werte auf den Vector speichern, funktioniert auch noch gut!
Aber ich kann sie mir nicht anzeigen lassen mit cout! Bekomm eine Fehlermeldung: no match for operator << ???


C++:
    arp_table ARP_TABLE_;
    ARP_TABLE_.protocol_type_ = ClientDevice::IP;
    ARP_TABLE_.target_ip_ = ip_address_;
    ARP_TABLE_.time_ = 0;
    ARP_TABLE_.target_mac_ = ip_address_;

    arp_table_vector_.push_back(ARP_TABLE_);
    vector<arp_table>::iterator iter;
    for(iter = arp_table_vector_.begin(); iter != arp_table_vector_.end(); iter++)
    {
      cout << arp_table_vector_[0] << endl;
    }


Dieser Post wurde am 29.05.2009 um 13:34 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
29.05.2009, 13:33 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


naja so in der art:


C++:
for(iter = arp_table_vector_.begin(); iter != arp_table_vector_.end(); iter++)
{
cout << iter->protocol_type_ << endl;
cout << iter->target_ip_ << endl;
cout << iter->time_ << endl;
cout << iter->target_mac_ << endl;
}



dann gibt er dir alle elemente des structs arp_table untereinander aus. das musste halt noch formatieren wie dus brauchst.

Er meldet den Fehler, weil er eben nicht weiß wie er arptable darstellen soll.

Wenn du sowas machst:

C++:
ostream &operator<<(ostream &to, const arp_table &table)
{
  to << table.protocol_type_ << endl;
  to << table.target_ip_ << endl;
  to << table.time_ << endl;
  to << table.target_mac_ << endl;
}



kannst du sowas schreiben:


C++:
for(iter = arp_table_vector_.begin(); iter != arp_table_vector_.end(); iter++)
{
  cout << *iter << endl;
}



bzw evtl einfacher (glaub jedenfalls das es so rum war):


C++:
copy(arp_table_vector_.begin(), arp_table_vector_.end(), cout);



oder auch wenn du nur das 0te element ausgeben willst:


C++:
cout << arp_table_vector_[0] << endl;


--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
29.05.2009, 13:57 Uhr
buchkogler



Danke, jetzt kenn ich mich aus
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: