Considerando l'effetto positivo della cache e della località dei dati durante la ricerca nella memoria primaria, tendo ad utilizzare std::vector<>
con gli elementi valore-chiave std::pair<>
-like ed eseguo ricerche lineari per entrambi, se so che la quantità totale di elementi chiave-valore sarà mai essere "troppo grande" per influire negativamente sulle prestazioni.Quando scegliere std :: vector su std :: map per i dati valore-chiave?
Ultimamente sto in un sacco di situazioni in cui ho sapere in anticipo che io sarà avere enormi quantità di oggetti di valore-chiave e hanno quindi optato per std::map<>
fin dall'inizio.
Mi piacerebbe sapere come si prendono le decisioni per il contenitore corretto in situazioni come quelle sopra descritte.
Ti
- usa sempre
std::vector<>
(o simili)? - utilizzare sempre
std::map<>
(o simile)? - ha una sensazione istintiva per dove nel range di conteggio articoli uno è preferibile rispetto all'altro?
- qualcosa di completamente diverso?
Grazie!
@Nemanja: Perché generalmente lavoro in un ambiente Windows CE/Mobile gravemente compromesso in cui TR1 richiederebbe troppo tempo, a dir poco, per integrarsi. –