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.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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...