set et ref/pointeur vers objet [C++] - C++ - Programmation
Marsh Posté le 06-04-2008 à 19:44:02
hmmm, je pense qu'il manque une entité au problème qui serait un "pool of points" qui contiendrait tt les points jamais créée. Ton set et tes triangles aurait ensuite des pointeurs ou des itérateurs vers ces points
Marsh Posté le 06-04-2008 à 19:56:45
std::set ne change pas ses nodes de place. Tant que tu ne supprimes pas un node, il ne se déplace pas. Sous réserve que tu n'utilises pas un GC particulier avec ton programme.
Ceci n'est pas vrai pour un vecteur ou une string par exemple, qui elle peut déplacer ses éléments sans rien te dire.
Marsh Posté le 06-04-2008 à 19:59:11
Joel F a écrit : hmmm, je pense qu'il manque une entité au problème qui serait un "pool of points" qui contiendrait tt les points jamais créée. Ton set et tes triangles aurait ensuite des pointeurs ou des itérateurs vers ces points |
set a besoin de l'objet pour utiliser l'opérateur < et >, donc exit les poiteurs (les itérateurs je ne sais pas, je débute en c++)
jesus_christ a écrit : std::set ne change pas ses nodes de place. Tant que tu ne supprimes pas un node, il ne se déplace pas. Sous réserve que tu n'utilises pas un GC particulier avec ton programme. |
Oki c'est la confirmation que j'attendait, merci
Marsh Posté le 06-04-2008 à 19:59:16
je rajoute que c'est vrai aussi pour std::map, std::multimap, std::multiset et std::dequeue.
Marsh Posté le 06-04-2008 à 20:02:04
ffomnislash a écrit : |
tu te fait une classe point_proxy qui pointe vers un point et tu defini < pour point_proxy en demandant à comparer les point qu'il pointent et ca devrais suffire pour
te permettre de faire des set<point_proxy>
Marsh Posté le 06-04-2008 à 23:29:30
Joel F a écrit : |
oui mais ca n'est pas très propre
Marsh Posté le 07-04-2008 à 09:02:40
en quel honneur ?
Le proxy est un design pattern de base ...
Marsh Posté le 06-04-2008 à 19:27:53
J'ai un problème que je n'arrive pas à résoudre.
J'ai un objet Point avec les opérateurs < et > demandé par std::set. Ceci me permet donc d'ajouter des Point dans un set.
Maintenant j'ai des objets triangles qui doivent "pointer" vers ces points. J'ai bien pensé à utiliser des pointeurs mais je ne sais pas si set peut modifier les emplacements mémoire des objets
J'aimerait donc savoir comment je pourrait résoudre ce probleme efficacement ?
Message édité par ffomnislash le 06-04-2008 à 19:28:44