vector sortieren
-
Hi,
ich hab folgenden Vector den ich alphabetisch sortieren möchte:struct DAT { std::string t1; std::string t2; std::string t3; } std::vector<DAT> m_Daten;Diesen Vector möchte ich nach t1 sortieren, ich habe aber keine Ahnung wie ich das machen muss. Könnt ihr mir da weiterhelfen?
Gruß
Peter
-
struct Sort_DAT_t1 { bool operator() (DAT const& d1, DAT const& d2) {return d1.t1 < d2.t1;} }; std::sort(m_Daten.begin(), m_Daten.end(), Sort_DAT_t1());
-
MFK schrieb:
struct Sort_DAT_t1 { bool operator() (DAT const& d1, DAT const& d2) {return d1.t1 < d2.t1;} }; std::sort(m_Daten.begin(), m_Daten.end(), Sort_DAT_t1());Vielen Dank für deine Antwort, leider funktioniert das noch nicht ganz, ich erhalte folgende Fehlermeldung:
error C2678: Binärer Operator '<': Es konnte kein Operator gefunden werden, der einen linksseitigen Operator vom Typ 'const std::string' akzeptiert (oder keine geeignete Konvertierung möglich)
-
Oder du implementierst operator < (oder operator >) und lässt dann sortieren.
Gruß
-
Frage3432 schrieb:
error C2678: Binärer Operator '<': Es konnte kein Operator gefunden werden, der einen linksseitigen Operator vom Typ 'const std::string' akzeptiert (oder keine geeignete Konvertierung möglich)
#include <string> vergessen? Zeig doch mal den Code.
-
MFK schrieb:
Frage3432 schrieb:
error C2678: Binärer Operator '<': Es konnte kein Operator gefunden werden, der einen linksseitigen Operator vom Typ 'const std::string' akzeptiert (oder keine geeignete Konvertierung möglich)
#include <string> vergessen? Zeig doch mal den Code.
Stimmt, hatte ich vergessen.
Jetzt bringt er mir aber das:error C2664: 'bool Sort_DAT_t1::operator ()(const DAT &,const DAT &)': Konvertierung des Parameters 1 von 'std::allocator<_Ty>::value_type' in 'const DAT &' nicht möglich
-
MFK schrieb:
Zeig doch mal den Code.
-
Sorry, hatte mich vertipp.
Ich habestd::vector<DAT*> m_Daten;
anstatt
std::vector<DAT> m_Daten;
-
Was ich noch vergessen hatte, das Problem ist gelöst, vielen Dank für die schnelle Hilfe.