Komme nicht weiter: Doppelte Strings finden (und in Datei eintragen)
-
Hallo!
Im Wesentlichen geht es darum doppelte Strings zu finden (die Anzahl) und diese dann in eine Datei einzutragen Diese Strings stehen in einer Datei und mein erster Schritt war, diese Datei in einen Vector einzutragen.
Nun probiere ich aber schon die ganze Zeit rum und will diesen Vector daraufhin untersuchen ob gleiche Strings enthalten sind, Beispiel:Vector
----
Hallo
Heinz
Peter
Hallo
Hallo
-----Das artet bei mir in x forschleifen aus, wie würdet ihr das machen?
-
Hallo,
ich würde das so machen, dass du die erst ein Set kopierst. Damit hast du dann schonmal die einzelnen Strings, und sortiert sind sie zudem. Anschließend würd ich den Vector mit dem Set vergleichen.
-
Dumme Frage: Was ist ein Set bzw. wie mache ich das?
Damit ihr nicht denkt ich versuche es nicht selber
hier meine fünfte Variante die immer noch dumm ist
for(int i=0; i<vPlayerdaten.size()-1; ++i) { if(vPlayerdaten[i] != "NULL") for(int j=i+1; j<vPlayerdaten.size(); ++j) if(vPlayerdaten[j] == vPlayerdaten[i]) { vPlayerdaten[j] = "NULL"; counter+=1; } if(counter>1) // in datei eintragen counter=0; }
-
Hallo,
Multiset
ist eine Menge, bei der die Elemente mehrfach vorkommen dürfen und automatisch nach ihrem Wert sortiert werden:
Carsten war schnellermultiset<string> menge; multiset<string>::iterator it; menge.insert("AAB"); menge.insert("CCC"); menge.insert("BBA"); for(it = menge.begin(); it != menge.end(); ++it) { // hier Elemente vergleichen }
#include <set> // nicht vergessen!
MfG
-
Hallo,
vielleicht hilft dir das:
http://www.cppreference.com/cppset.html
-
So ganz fällt der Groschen irgendwie nicht, also gut ich soll die Strings statt in einen Vector in ein Set eintragen wo sie schon mal von alleine sortiert werden.
Dann hätten wir
Det
----
Hallo
Hallo
Hallo
Heinz
Peter
-----*grübel* und dann? Wie ist das gemeint "mit set vergleichen" ?
-
warum nicht mit map:
map<string, int> strings; while (not ende) { str = neuer string von datei; ++strings[str]; }
-
Umweltzeichen schrieb:
Nun probiere ich aber schon die ganze Zeit rum und will diesen Vector daraufhin untersuchen ob gleiche Strings enthalten sind, Beispiel:
Vector
----
Hallo
Heinz
Peter
Hallo
Hallo
-----Das artet bei mir in x forschleifen aus, wie würdet ihr das machen?
a) ...
b) sort(v.begin(),v.end()); aufrufen, damit gleiche strings beieinander stehen.
c) die for-schleife bauen.
die schleife ist jetzt nur noch eine und gar nicht so schwer.
-
Tut mir leid ich packs nicht, wie soll das dann mit einer forschleife gehen?!
-
Kann es sein das du denkst es ist nur 1 doppelter String enthalten?
Dann wäre das mit einer forschleife klar, ansonsten rall ich es echt nicht
-
Umweltzeichen schrieb:
Kann es sein das du denkst es ist nur 1 doppelter String enthalten?
Dann wäre das mit einer forschleife klar, ansonsten rall ich es echt nicht//ungetestet, nur skizze string alt=v[0]; string count=0; for(int i=1;i<v.size()){ if(v[i]==alt){ ++count; } else{ cout<<alt<<' '<<count<<endl; count=0; alt=v[i]; } }