Avatar billede Slettet bruger
01. oktober 2013 - 14:51 Der er 5 kommentarer og
1 løsning

Sortering af Vector med egne objekter

Hej,

Er ny i C++ og jeg har en Vector med objecter (Person), hvor jeg har forskellige informationer. Jeg skulle så gerne have denne Vector, med alle Person objekterne, sorteret efter navn.

Når jeg så skal sorter, så skal jeg angive (hvis det bare er lidt som i Java), hvad der skal sorteres efter på min Person klasse. Men hvordan gør jeg lige det? Jeg har forsøgt med at ændre på operator < men uden det store held.

Nogen som kan byde ind?
Avatar billede segmose Nybegynder
01. oktober 2013 - 15:01 #1
Se på custom version af std::sort http://www.cplusplus.com/reference/algorithm/sort/

Man laver en funktion eller klasse der definere den ønskede sortering.
Avatar billede Slettet bruger
01. oktober 2013 - 15:30 #2
Jeg får 2 fejl, som jeg ikke kan se hvordan jeg skal kunne rette:

Når jeg vil sorter min vector, så gør jeg sådan:
std::sort(patients.begin(), patients.end(), sorting);

hvor patients er min vector og sorting er min funktion, som se således ud. pfName er public variabler.

bool Ward::sorting(Patient s1, Patient s2)
{
    return (s1.pfName < s2.pfName);
}

Jeg får disse 2 fejl:
'Ward::sorting': function call missing argument list; use '&Ward::sorting' to create a pointer to member ward.cpp    113

'void std::sort(_RanIt,_RanIt)' : expects 2 arguments - 3 provided ward.cpp 113
Avatar billede segmose Nybegynder
01. oktober 2013 - 21:49 #3
sorting må ikke være en member function.
Avatar billede MadsHaupt Juniormester
02. oktober 2013 - 10:50 #4
Du laver bare en funktion til at soter det.
Avatar billede Slettet bruger
02. oktober 2013 - 11:25 #5
Jeg fik det til at virke.

Segmose vil du ikke smide et svar?
Avatar billede segmose Nybegynder
02. oktober 2013 - 11:47 #6
svar.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester