23. oktober 2013 - 12:40Der er
6 kommentarer og 1 løsning
Slet et bestemt element i en vector
Hej,
Jeg har lidt problemer med at slette et element i en vector, som er af typen vector<Person *>. Jeg kan finde pladsen i vector, hvor det element som skal slettes ligger.
Jeg kan godt finde elementet (nok ikke helt så smart som i dit link). Men problemet opstår når jeg så vil slette det element som jeg fra fundet, fra listen.
hvis du ikke har behov for hurtig access by index, saa er list<Person *> en mulighed
Synes godt om
Slettet bruger
23. oktober 2013 - 19:22#6
Ja det er en mulighed, men tror muligvis at jeg ændre det til et map da jeg ofte kommer til at skulle finde objecterne på cpr nr. og så vil jeg bruge det som nøgle. Det gør ikke noget hvordan det kommer ud, når det skal udskrives.
Listen var også en mulighed da hastighed ikke er super vigtigt, da listen aldrig når mere end 100 elementer. Så det er sku nok same-same :)
Med 1000 elementer er en vector med pointer relativ billig at slette et element da al kopiering foregår i cache med streaming fra/til RAM, en list er en dyr fornøjelse mm. man er sikker på at hele listen altid er i RAM, da et miss koster ~200 cycles og dem vil der være mange af i en så lang liste. Et map er godt, et hashmap er bedre i de fleste tilfælde, dog skal man lige overveje hvordan man vil tilgå det og lave sin hash funktion derefter, default er pointer, det smarte valg er at lave den på det du søger efter (mm. du ved hvad pointer værdien er :))
Synes godt om
Ny brugerNybegynder
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.