Vector mit Struct ausgeben (mithilfe Iteratoren)
-
Hallo Jungs
Ich habe einen Vector mit einem Struct
struct Marke { int Eintrag; char Name[30]; }; int main() { ... vector<Marke> vec; .. }Nachdem ich einige Datensätze eingelesen habe möchte ich alles ausgeben. Ich habe gedacht das löst man am besten mittels Iterator.
zb:
for (vector<Marke>::const_iterator i = vec.begin(); i != vec.end(); i++)
cout << *i;Klappt aber nicht, ziemlich sicher weil es ein Struct ist. Habe es auch probiert mit (*i).Name oder (*i)->Name aber geht alles nicht.
Bin noch relativ unerfahren und hoffe auf einen Denkanstoss

Gruss
-
du musst nat in dem struct auch noch den operator << überladen...
und dann würde
cout << *i;stimmen
woher soll der compiler sonst wissen, wie du dir den operator vorgestellt hast?
bb
edit:
for (vector <Marke>::const_iterator i (vec.begin ()), end (vec.end ()); i != end; ++i) std::cout << *i;
-
„Klappt aber nicht“ ist keine Fehlermeldung!!!

-
Überlad den Operator<< für deine Struktur:
std::ostream& operator <<( std::ostream& stream, const Marke& m ) { return stream << m.Eintrag << " " << m.Name; }
-
Ahh stimmt, hab ich sogar mal irgendwo gelesen.
Wie kann ich den Operator << in diesem Fall überladen. Habe einiges gelesen zb http://www.math.uni-wuppertal.de/~axel/skripte/oop/oop14_1.html aber läuft noch nicht.
Danke
-
Geht super!
Danke