Bonjour,
Y a-t-il un moyen simple de voir si deux vector ou map sont égaux ?
J'entends par la une fonction qui vérifie ça tout seul, ou même l'opérateur "==".
Merci.
Bonjour,
Y a-t-il un moyen simple de voir si deux vector ou map sont égaux ?
J'entends par la une fonction qui vérifie ça tout seul, ou même l'opérateur "==".
Merci.
Salut,
pour les vector, il y a std::equal, http://cpp.developpez.com/faq/cpp/?page=STL#STL_vector
et pour map, je ne sais pas ce que c'est.
Tu aurais pu rechercher un peu et voir que dans les deux cas, il y a un opérateur == de défini
"Never use brute force in fighting an exponential." (Andrei Alexandrescu)
Mes articles dont Conseils divers sur le C++
Une très bonne doc sur le C++ (en) Why linux is better (fr)
Merci pour la réponse.
Ca a l'air de fonctionner pour les types simple, mais est-ce que ça marche pour les types complexe (les objets que je crée moi même) ?
Je crains que ça ne fasse qu'une comparaison en "surface" et non en profondeur (en vérifiant si tous les attributs des objets sont égaux).
Bah faut bien que T soit equalityComparable... évidemment.
Salut,
Généralement, les différents algorithmes associés aux conteneurs se contentent d'évaluer la comparaison des éléments contenus.
Ainsi, la comparaison d'égalité entre deux conteneurs renverra vrai si (et seulement si)... chaque élément du premier est égal à l'élément correspondant du second.
Pour cela, il faut donc, comme l'a fait remarquer Goten que... le type d'objet maintenu dans la collection dispose... de l'opérateur ==.
Dans certaines situations (exemple: pour les std::map et les std::set), ce n'est d'ailleurs pas forcément l'égalité qui est testée, mais plutôt l'équivalence ( si a<b donne un résultat faux et que b<a donne un résultat faux, les deux objets sont équivalents, mais pas forcément identiques)
Cependant, la manière dont cette comparaison s'effectue au niveau de l'objet ne dépend que de toi, et il est donc de ton ressort de faire en sorte que la comparaison s'effectue "suffisamment en profondeur" par rapport à tes besoins (du moins pour les types non primitifs)
![]()
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
Partager