String-Operationen
-
CTecS schrieb:
Werner und du denkst der TE versteht davon was wenn er schon mit GOTO rumwerkelt?
Das ist vor allem eine Sache des TE, das er nie vernünftig C++ gelernt hat (wo bekommt man eigentlich GOTO beigebracht?). Werners Vorgehensweise ist die, wie man es richtigerweise machen würde. Meinetwegen mit mehr Zwischenschritten, aber die Hauptpunkte sind:
1. Direkt aus dem Stream lesen, keine Umwege über Strings
2. Standardbibliothek für sich arbeiten lassen
2b. C++-Standardbibliothek für sich arbeiten lassen, nicht die C-Standardbibliothek auf C++-Objekte anwenden.
3. Saubere Kontrollstrukturen, kein goto.Vernünftige Lehrbücher und Links für Anfänger findet der Threadersteller hoffentlich selbstständig im Forum.
-
^^
-
Troll? Account gehackt? Meint der das ernst?
-
Ich hab dir ja ne Mail geschrieben...
^^
-
Player894 schrieb:
was meine ich ernst
Na, deinen vorletzten Beitrag. Das ist ziemlicher Unsinn, auf ganz niedrigem Niveau. Darauf antworte ich nicht einmal im Details, weil ich nicht glauben kann, dass das kein Trollversuch sein soll. Falls du das wirklich ernst meinen solltest, wirst du damit voll auf die Schnauze fliegen. Wahrscheinlich sogar bald.
-
Werner Salomon schrieb:
Müsste im Prinzip so gehen:
vector< pair< string, string > > dictionary; // pair.first -> deutsch; pair.second -> englisch
Was soll das werden?
"Im Prinzip" nimmt man für ein Wörterbuch map und nicht vector.Werner Salomon schrieb:
// usw. 'dictionary' enthält jetzt alle Vokabeln
Und, wie soll er den vector nun für sein Wörterbuch gebrauchen?
Jedesmal iterieren?
-
"Im Prinzip" nimmt man für ein Wörterbuch map und nicht vector.
Ja, aber nur im Prinzip. Denn eine
map
ist für ein Wörterbuch nicht viel geeigneter als einvector
.
-
Player894 schrieb:
Was habt ihr alle gegen GOTO???
Einfach: Es vermindert die Lesbarkeit und damit Wartbarkeit des Codes, zwei sehr essenzielle Faktoren beim Programmieren.
C++ ist C.
Nein, nein und nochmals nein. Das ist etwas, was SeppJ hier leider irgendwie jedem zweiten Uni-Lehrling erklären muss. C++ und C sind zwei verschiedene Sprachen mit gleicher Syntax. Wenn du versuchst, C mit einem C++-Compiler zu kompilieren, dann nimm gleich einen C-Compiler.
oder meinetwegen einer Funktion wie .toint() oderso
Die gibt es,
std::stoi
.Außerdem ist GOTO bewährter als alles andere aus C++, da ganz C++ nunmal in GOTO - "Krams" namens Maschninensprache übersetzt wird.
Richtig. Laut deiner Argumentation sollten wir alle Assembler lernen und von Hochsprachen die Finger lassen. Dir fällt auf: Du bist inkonsistent.
Und ob ich jetzt eine while-Schleife nehme und der Compiler dass dann in GOTO-Strukturen verwandelt, oder ob ich einfach gleich GOTO verwende ist letztlich egal.
Erstens: Meintest du nicht, das ersteres langsamer ist?
Zweitens: Nein, uns nicht. Ich weigere mich hiermit, solchen Code zu lesen. Mir fehlen die masochistischen Veranlagungen.
-
Hallo Wutz,
Wutz schrieb:
Werner Salomon schrieb:
Müsste im Prinzip so gehen:
vector< pair< string, string > > dictionary; // pair.first -> deutsch; pair.second -> englisch
Was soll das werden?
"Im Prinzip" nimmt man für ein Wörterbuch map und nicht vector.Und, wie soll er den vector nun für sein Wörterbuch gebrauchen?
Jedesmal iterieren?das mit
vector
stattmap
war schon Absicht. Player894 hat uns seinen endgültigen Use Case ja nicht genau verraten (eine Art Vokabeltrainer s.o.). Wenn er es als Lernhilfe benutzt, bei der zufällig ausgewählte Worte übersetzt werden sollen, macht einemap
gar keinen Sinn. Hier ist ein sequentieller Container mit random access Zugriff besser. Eventuell sollte man dann std::pair<> noch durch einestruct/class
ersetzen, um weitere Informationen dort abzulegen. Aber das war nicht das Thema dieses Threads.
Braucht er es als Wörterbuch zum Nachschauen, so kann er es nach den deutschen oder den englischen Begriffen sortieren. Je nach dem was gesucht wird. Dann ist einstd::lower_bound
praktisch genauso performant wie dasfind
einermap
. Und selbst ein simplerstd::find
wäre für eine Anwendung, bei der jedes Wort vom Benutzer eingegeben werden muss, auch bei mehreren tausend Einträgen IMHO kein Problem.Gruß
Werner
-
Nene, Player894 hat schon recht. Keiner ausser ihm hier hat Ahnung, immerhin ist es ja er hier, der die Anfängerfrage stellt