Mehrstufiges Sortieren mit sort()

Gast #1469143
Lesenswert?

Hallo,

ich benutze in C++ die sort() Funktion, um einen Vektor mit Strings zu 
sortieren.
1
bool operator<(const MeinVect& lhs, const MeinVect& rhs)
2
  {
3
// return-Funktion
4
  }
5

6
// Funktionsaufruf
7
sort (MeinVect.begin(), MeinVect.end());
Den Operator < habe ich - wie oben zu sehen ist - bereits überladen.

Soweit funktioniert das auch sehr gut, aber jetzt möchte ich gerne
eine zweistufige Sortierung haben, also erst nach 
MeinVect.Stringvariable1
sortieren und danach die bereits sortierten Teil-Abschnitte intern nach
MeinVect.Stringvariable2 sortieren.

Wie genau realisiert man so eine zweistufige Sortierung mit Vektoren am 
einfachsten?

Gruß,

Torsten
Gast #1469208
Lesenswert?

Wenn du eine bereits sortierte Liste nochmals sortieren willst, dabei 
aber die vorherige Sortierung nicht gänzlich verlieren willst, dann 
soltlest du einen stabilen Sortieralgorithmus nehmen.

Soweit ich weiß befindet sich unter sort() eine Quicksort 
implementierung die nicht stabil ist.
#1470440
Lesenswert?

>
1
> bool operator<(const MeinVect& lhs, const MeinVect& rhs)
2
>   {
3
> // return-Funktion
4
>   }
5
> 
6
> // Funktionsaufruf
7
> sort (MeinVect.begin(), MeinVect.end());
8
>
> Den Operator < habe ich - wie oben zu sehen ist - bereits überladen.


Ich gehe davon aus, das obige ist aber nur ein Code --> Forum 
Schreibfehler, oder? (siehe Stephans Antwort)
Nicht dass Du an der falschen Stelle rumdokterst.

Schiko

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren