Que faut il utiliser pour les collections en C++?

std::tr1::unordered_map<>
std::vector
std::list
??
Je fais un logiciel de gestion pour un bibliothèque.
On m'a dit que la class vector n'était pas bien pour gérer une collection d'objet:

En l'occurence, pour un logiciel de gestion type bibliothèque,le type vector n'a pas d'intérêt, vu que tu vas faire des insertions/suppression, et que tu vas sans doute accéder aux objects par autre chose qu'un simple numéro (à par l'ISDN, mais tu ne vas pas le stocker sur des entiers consécutifs).
Que me conseiller vous d'utiliser?