Frage

Also, ich habe einen Vektor

 std::vector<std::string> lines. 

ich diesen Vektor füllen, und es wie zugreifen

 std::string temp = lines[0];

Doch in dem sofortigen Fenster, beide

 lines[0] - error:overloaded operator not found

und

 lines.at(0) - error:symbol is ambiguous

funktioniert nicht. Gibt es einen Trick, um die Direkt-Fenster mit c ++ verwenden. Ich komme meistens aus einem C # -Hintergrund, wo alles funktioniert gut (und ich habe Intellisense in den Direkt-Fenstern). Ich habe nicht erwartet, C ++, groß zu sein, aber ich dachte, es wäre neben Ints für die Dinge funktionieren. Kann mir jemand sagen, was ich falsch mache? Danke.

EDIT: Ich soll klar sein, nichts funktioniert wirklich in dem sofortigen Fenster, das ist nur ein vereinfachtes Beispiel

EDIT: Ich bin im Debug-Modus

War es hilfreich?

Lösung

Die unmittelbaren und Uhren Fenster nicht unterstützen ladenen Operatoren. Es besteht eine gewisse Unterstützung dort für den Druck Standardcontainer als Ganze in einer vernünftigen Art und Weise (siehe zB http://www.virtualdub.org/blog/pivot/entry.php?id=120 ), aber dies reicht nicht zu der Möglichkeit, operator[] auf sich zu nutzen.

Hoffentlich wird dies in späteren Versionen des Debuggers verbessert werden, aber für jetzt, am i-ten Elemente eines Vektors, try lines._Myfirst[i] zu suchen.

(_Myfirst, in den Standardbibliotheken, die mit VC kommen ++, ist nun mal die Membervariable in einem std::vector sein, dass auf das erste Element der Sequenz. Also das ist nur ein Vektor prüft, als ob es ein anderes Objekt waren. Die diese aus arbeiten, musste ich an den Header sehen ... nicht sehr bequem, aber hoffentlich wird diese Ihnen helfen. Sie wahrscheinlich etwas ähnliches mit den anderen Behältern tun, aber Sie werden in den Header aussehen müssen, um herauszufinden, wie ).

(By the way, wenn Sie in C # gearbeitet haben, die C ++ Debugger scheint wahrscheinlich durch den Vergleich ein bisschen weniger glatt im Allgemeinen, und dies ist nur ein Beispiel dafür. Ich habe den Eindruck bekommen, es viel mehr Arbeit gewesen setzen in die CLR Seite.)

Andere Tipps

In nowaday Visual Studio-Versionen (zum Beispiel 2013/2015) _Myfirst Membervariable existiert nicht mehr für einen std :: vector variabel. Verwendung _C_begin statt - Mittel für die gegebene Beispiel der Verwendung z.B. lines._C_begin [i].

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top