Considerando el efecto positivo del almacenamiento en caché y la ubicación de datos cuando busco en la memoria primaria, tiendo a usar std::pair<>
-como elementos de valor-clave y realizar búsquedas lineales para ambos, si sé que la cantidad total de elementos clave-valor nunca sea "demasiado grande" para afectar severamente el rendimiento.Cuándo elegir std :: vector over std :: map para datos de valor-clave?
Últimamente he estado en un montón de situaciones en las que saber de antemano que va a tienen enormes cantidades de artículos de valor clave y por lo tanto he optado por std::map<>
desde el principio.
Me gustaría saber cómo tomar sus decisiones para el contenedor adecuado en situaciones como las descritas anteriormente.
¿Te
- utilizar siempre
std::vector<>
(o similar)? - siempre use
std::map<>
(o similar)? - tienen una intuición de dónde en el rango de recuento de artículos uno es preferible sobre el otro?
- algo completamente diferente?
Gracias!
@Nemanja: Porque generalmente trabajo en un entorno Windows CE/Mobile gravemente paralizado donde TR1 consumiría demasiado tiempo, por decir lo menos, para integrarse. –