Les Collections [C / C++] - C++ - Programmation
Marsh Posté le 02-06-2005 à 15:34:05
les conteneurs de la stl dont
std::list, std::vector
http://www.sgi.com/tech/stl/
Marsh Posté le 02-06-2005 à 22:48:26
Le choix de ton conteneur dépend de comment tu accèdes à tes objets.
Marsh Posté le 02-06-2005 à 23:05:59
j'aime bien std:: deque
Marsh Posté le 05-06-2005 à 20:22:13
Ouais...
J'ai beaucoup fait de java donc je pense utilisé la calsse Vector...
http://seesar.lbl.gov/anag/chombo/ [...] ource.html
Marsh Posté le 05-06-2005 à 20:39:29
Spir a écrit : Les collections en C++. Quel est la meilleur option pour stocker une collection d'objet?
|
il me semble que le container collection existe dans la stl si ton besoin est une simple collection (non indexé, non ordonné, non trié).
Marsh Posté le 05-06-2005 à 21:32:52
Taz a écrit : non ça n'existe pas. |
exacte, erreure car je bosse avec une stl redéveloppée donc avec collection.
si tu n'as pas de duplicat, prends un set.
Marsh Posté le 05-06-2005 à 21:44:35
j'aurais tendance a dire qu'on prends un set si on ne veut pas de duplicat, pas l'inverse
Marsh Posté le 06-06-2005 à 19:23:04
Les vecteurs c'est impec nan? Il et ou le problème? C'est un peu comme les vecteurs en Java?
Marsh Posté le 06-06-2005 à 19:33:02
le vector c'est bien pour stoquer un collection de données stable une fois arrivé à un certain point.
=> l'insertion au début/milieu lente, mais l'accès aléatoire et le parcourt du début et à la fin est on pas faire mieux.
etc... etc...
moi j'utilises pas mal de hash_map pour mes collections de ressources, textures, modèles, tu ce qui est identifié par un chemin (en std::string ou en boost::filesystem:: path) etc... etc...
Marsh Posté le 06-06-2005 à 19:37:55
bref il faut que tu connaisses le profil de création/suppression d'objets de ta collection, accès séquentiel ou alétoire, critère de vitesse de recherche, etc, etc....
pour en revenir à ce que tu ferais pour un moteur 3D de jeu, les ressources textures, sons, modèles & co, sont en hash_map<std::string,...>, les entitées crées/détruites à haute fréquence sont dans une (double) liste chainée (donc list<> ), et triangles/vertex d'un modèles tu les fous dans un vector.
Marsh Posté le 06-06-2005 à 20:23:26
Nan moi c'est pour un logiciel de gestion tout bête.
Pour gérer des objets. En fait je fait un outil de gestion d'une bibliothèque.
Donc dans mon vector je stock des objets de type 'emprunteur', 'ouvrage'. Plusieur colelction en fait pour gérer ma bibliothèque.
Marsh Posté le 06-06-2005 à 23:22:56
bah un tableau c'est statique
et la gestion de la taille d'un vector, c'est optionel, t'as push_back() qui t'agrandi le conteneur pour toi.
Marsh Posté le 07-06-2005 à 08:19:15
Spir a écrit : Les vecteurs c'est impec nan? Il et ou le problème? C'est un peu comme les vecteurs en Java? |
Si tu insères des données au début ou au milieu de tes vector, tu vas vite comprendre le pb.
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).
Marsh Posté le 07-06-2005 à 10:28:37
ReplyMarsh Posté le 07-06-2005 à 12:37:19
el muchacho a écrit : Si tu insères des données au début ou au milieu de tes vector, tu vas vite comprendre le pb. |
Tu me conseil quoi du coup?
std::tr1::unordered_map<> ??
Marsh Posté le 02-06-2005 à 15:16:34
Les collections en C++. Quel est la meilleur option pour stocker une collection d'objet?
Quel est la meilleur solution selon vous?
Y en a t'il d'autre?