std::string als Index für eigene Klasse
-
Guten abend allerseits!
Ich probiere mich gerade an einer Implementierung des Quine-McCluskey Algortihmus'. Zu diesem Zweck möchte ich eine neue Klasse definieren, die mit Hilfe eines überladenen Indexoperators die Wahrheitstabelle für einen Ein- oder Ausgang (automatisch auswählen) ausgibt.
Meine Code sieht momentan wie folgt aus:
Header:
using namespace std; typedef vector < string > stringlist; typedef vector < stringlist > t_table; class QMClist { private: stringlist _indices_in; stringlist _indices_out; t_table _invals; t_table _outvals; public: stringlist& operator[](string x); QMClist(stringlist indices_in, stringlist indices_out); void fill(string filename); };Source:
stringlist& QMClist::operator[](string x) { for (int _i = 0; _i < (int)_indices_in.size(); _i++) { if (_indices_in[_i] == x) return _invals[_i]; } for (int _i = 0; _i < (int)_indices_out.size(); _i++) { if (_indices_out[_i] == x) return _outvals[_i]; } throw std::out_of_range ("No Value found."); } QMClist::QMClist(stringlist indices_in,stringlist indices_out) { _indices_in = indices_in; _indices_out = indices_out; } void QMClist::fill(string filename) { string _at = "a"; this[_at]->push_back("test"); }Beim kompilieren des Codes gibt mir der Compiler folgende Errors aus:
1>class_qmclist.cpp(18): error C2677: Binärer Operator '[': Es konnte kein globaler Operator gefunden werden, der den Typ 'std::string' akzeptiert (oder keine geeignete Konvertierung möglich) 1>class_qmclist.cpp(18): error C2227: Links von "->push_back" muss sich ein Zeiger auf Klassen-/Struktur-/Union-/generischen Typ befinden."this[_at]->push_back("test");" ist also offenbar falsch. Kann mir jemand helfen und mir sagen wie es richtig sein müsste?
Danke im Voraus!
MFG TLuc
-
(*this)[_at]oderoperator [] (_at)
-
Vielen Dank!!!
Das Brett das vor meinem Kopf war darfst du behalten wenn du willst

-
Dieser Thread wurde von Moderator/in Martin Richter aus dem Forum MFC (Visual C++) in das Forum C++ (auch C++0x und C++11) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.