Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo an alle...

ich habe folgendes Problem. Ich will ein List-Objekt ausgeben, bekomme dabei aber immer eine Fehlermeldung mit der ich nichts anfangen kann.


	list<string> O;        


	O.push_back("Test 1");

	O.push_back("Test 2");

	O.push_back("Test 3");


	for(int i = 0; i < O.size(); ++i)

		cout << i << ": " << O[i] << endl;

Wenn ich diesen Code so ausführe, bekomme ich immer folgende Fehlermeldung:

"Binaerer Operator '[' : 'class std::list<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::ch

ar_traits<char>,class std::allocator<char> > > >' definiert diesen Operator oder eine Konvertierung in einen für den vordefinierten Operator geeigneten Typ nicht"

Ehrlich gesagt verstehe ich nur Bahnhof. Was mache ich falsch???

Gruß Christian

Geschrieben

Ganz einfach: std::list bietet keinen indexbasierten Zugriff über den operator[]. Das kann nur std::vector. Bei std::list musst du mit iteratoren arbeiten:

for(list<string>::iterator i = O.begin(); i != O.end(); ++i)
cout << *i << endl;[/CODE]

Geschrieben

Danke für die Antwort. Hätte ich auch selbst drauf kommen können. Aber wenn ich folgenden Code ausführe bekomme ich eine andere Fehlermeldung.


list<string> O;        


O.push_back("Test 1");

O.push_back("Test 2");

O.push_back("Test 3");


for(list<string>::iterator i = O.begin(); i != O.end(); ++i)

	cout << *i << endl;

Fehlermeldung:

Binaerer Operator '<<' : Kein Operator definiert, der einen rechtsseitigen Operator vom Typ 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' akzeptiert (oder keine geeignete Konvertierung moeglich)

Was mache ich jetzt schon wieder falsch bzw. was habe ich vergessen?

Gruß, Christian

Geschrieben

Hi,

eigentlich ist der Code völlig korrekt. Welchen Kompiler benutzt du denn? Welche STL? Hast du auch alle Header eingebunden?


#include <iostream>

#include <string>

#include <list>

Bei mir funktioniert der ohne Probleme. Ich benutze den gcc-Version 3.3.2 20031218 .

Falls du den VC6 benutzt, der hat teilweise Bugs in der STL:

http://www.dinkumware.com/vc_fixes.html

Allerdings weiss ich natürlich nicht, obs daran liegt, da ich den leider nicht zur Verfügung habe.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...