Sorteer een LIST van structs op basis van een string

  • Onderwerp starter Onderwerp starter XXL66
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

XXL66

Gebruiker
Lid geworden
11 dec 2007
Berichten
13
struct Xsection_data
{
TCHAR *name;
ads_point ipt;
double kumul;
int color;
};


bool NameSort(const Xsection_data& lhs, const Xsection_data& rhs)
{
return lhs.name < rhs.name;
}

functie ()
{

....
list<Xsection_data> XS_data;
XS_data.sort(NameSort);
...
}

Hallo,

sorteren werkt blijkbaar niet, hoe kan ik dit correct sorteren ? Ik wil dus de lijst sorteren op basis van de "name" in de struct Xsection_data.

thx !!
 
Weet je wel zeker dat jouw sorteerfunctie doet wat het moet doen ?

Code:
void sort_string(string s1, string s2){
     s1 < s2 ? cout << "S1\n" : cout << "S2\n";
}

void sort_tchar(TCHAR *t1, TCHAR *t2){
     t1 < t2 ? cout << "T1\n" : cout << "T2\n";
}

int main(int argc, char *argv[])
{
    sort_string("aaa", "bbb");
    sort_tchar("aaa", "bbb");
    
    system("PAUSE");
    return EXIT_SUCCESS;
}

De output is in dit geval:
S1
T2

Een oplossing voor jouw probleem zou kunnen zijn:

Code:
bool NameSort(const Xsection_data& lhs, const Xsection_data& rhs)
{
return string(lhs.name) < string(rhs.name);
}

edit: typo
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan