bonjour,
j'aimerai savoir comment faire pour copier tout le contenu d'un set dans un vector, merci
Version imprimable
bonjour,
j'aimerai savoir comment faire pour copier tout le contenu d'un set dans un vector, merci
Bonjour, tu as plusieurs facon. en voici quelques une :
1- a la creation du vecteur
2-avec l'algorithm copy et un vecteur:Code:std::vector<...> myVector(mySet.begin(),mySet.end());
Code:
1
2
3
4
5
6 //ajout le set a la fin du vecteur std::copy(mySet.begin(),mySet.end() , back_inserter(myVector)); //copi un a un les elements myVector.resize(mySet.size()); std::copy(mySet.begin(),mySet.end(),myVector.begin());
Si tu as besoin de changer de container au milieu d'un programme, je pense que c'est que le container a été mal choisi à la base. Pourquoi ce changement?
Mongaulois: merci
spoutspout: enfaite c'que j'veut c'est juste suprimer les doublons d'un vecteur, ducoup j'suis passer par un set avant, mais c'est vrai que c'est un peut pourrie enfaite, mais j'ai pas trouver comment faire pour suprimmer les doublons d'un vecteur
mais enfaite si finalement cetait pas dur a trouver dsl
Sinon, pour rechercher un doublon, tu peux aussi utiliserLe prédicat (argument 3) c'est une classe qui te renverra true ou false selon que le vector_type remplira la condition définie par l'opérateur = du prédicat. Dans ton cas, si la valeur courante est égale à vector_type;Code:std::find_if(vector.begin(),vector.end(),pred(vector_type));
ok merci
Saufq ue c'est impossible avec ça de trouver un doublon. Selon les implémentations de la STL, ça peut supprimer tout le vecteur.
Ne JAMAIS utiliser un prédicat à état.
Un état, c'est quelque chose qui peut être modifié lors de l'itération. Si c'est fixe, ce n'est pas un état (cf Meyers ;))
Voir aussi la fonction std::unique() (avec éventuellement un sort avant).