Vektoren: Gleiche Einträge löschen?
-
Hallo,
ich habe erst heute den Nutzen von Vektoren (vector) erkannt, habe aber noch Probleme im Umgang damit. Wie kann man zum Beispiel (möglichst effizient) gleiche Einträge aus einem Vektor löschen?
Danke!
-
Am besten gleich ein std::set benutzen. Da sind Doubletten gar nicht erst möglich. Ansonsten std::unique...
-
Danke!

-
Viktor2010 schrieb:
Danke!

Ich weiß ja nicht, für welche Variante Du Dich nun entschieden hast, aber ganz unproblematisch ist der Vorschlag mit std::set nicht, weil sich der Container konzeptionell schon sehr von std::vector unterscheidet.
Z.B.:
- die Reihenfolge im set ist durch ein festes Sortierkriterium vorgegeben; vector wird oft verwendet, wenn man die Einfügereihenfolge beibehalten will.
- Kein "Index-Zugriff" möglich.
- Ablage via Zeiger (z.B. wg. Polymorphie) ist im std::set etwas komplizierter.
- Einfügem kann "teurer" sein (aber vermutlich auch nicht teurer als wenn man beim vector nach jedem Einfügen wieder Duplicate löscht)
- ...Trotzdem kann std::set genau das Richtige sein - es ist aber schon etwas ziemlich anderes als ein "vector ohne Duplikate".

Gruß,
Simon2.
-
Wobei man dazusagen sollte, dass unique auch erfordert, dass der vector zuvor sortiert wurde.
-
Simin2...
LordJaxom...Was auch alles auf den verlinkten Seiten steht...
