Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1352 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  STL ajouter des éléments dans un vector

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

STL ajouter des éléments dans un vector

n°1389953
Amonchakai
Posté le 18-06-2006 à 14:04:51  profilanswer
 

Bonjour !
Bon je viens juste depuis quelques jours de commencer a apprendre STL et là j'ai un petit soucis : je comprend pas comment on fait pour insérer un élément dans un endroit précis dans un Vector.
 
par exemple je fait ça :

Code :
  1. std::vector<int> vectInt;
  2. vectInt.push_back(10);
  3. vectInt.push_back(20);
  4. vectInt.push_back(30);


je voudrais rajouter 25 entre le 20 et le 30
je sais qu'il faut utiliser la méthode insert() mais j'ai un soucis avec les iterator...

Code :
  1. std::vector<int>::iterator itera = vectInt.end();


car ça, ça va me donner le dernier et donc si je fais  vectInt.insert(itera, 25); il va me le mettre a la fin...
mais on fait comment pour lui dire de le mettre en 3° place ???
 
Merci :)

mood
Publicité
Posté le 18-06-2006 à 14:04:51  profilanswer
 

n°1389954
KangOl
Profil : pointeur
Posté le 18-06-2006 à 14:06:39  profilanswer
 

utilises find pour trouver l'element que tu veux

n°1389958
Amonchakai
Posté le 18-06-2006 à 14:09:06  profilanswer
 

d'accord Merci je vais regarder :)

n°1389960
KangOl
Profil : pointeur
Posté le 18-06-2006 à 14:11:19  profilanswer
 

ou mieux : tu utilises std::list qui comporte une méthode sort

n°1389965
Amonchakai
Posté le 18-06-2006 à 14:17:19  profilanswer
 

Ok merci mais pour le moment dans mon tutorial je suis pas encore arrivé a l'utilisation des list  :D  
mais je retient ta méthode :)

n°1389966
++fab
victime du syndrome IH
Posté le 18-06-2006 à 14:18:16  profilanswer
 

Amonchakai a écrit :


mais on fait comment pour lui dire de le mettre en 3° place ???


En troisième place ?  
 

Code :
  1. assert( vec.size() > 2 ); // s'assurer que vec.begin() + 2 est un itérateur valide
  2. vec.insert( vec.begin() + 2, 25 );


 
A moins que tu ne veuilles dire en avant dernière place ?

Code :
  1. assert( ! vec.empty() ); // s'assurer que vec.begin() - 1 est un itérateur valide
  2. vec.insert( vec.end() - 1, 25 );


 
Si tu veux ranger des éléments triés, peut être qu'un std::set<> est plus approprié.


Message édité par ++fab le 18-06-2006 à 14:56:16
n°1389967
++fab
victime du syndrome IH
Posté le 18-06-2006 à 14:21:19  profilanswer
 

KangOl a écrit :

ou mieux : tu utilises std::list qui comporte une méthode sort


elle a une fonction membre sort car elle ne peut pas utiliser std::sort -- qui requière aux itérateurs du conteneur, d'être à accès aléatoires.

n°1389968
KangOl
Profil : pointeur
Posté le 18-06-2006 à 14:22:23  profilanswer
 

ha merci pour l'info :jap:

n°1389983
Amonchakai
Posté le 18-06-2006 à 14:58:59  profilanswer
 

Ok, Merci pour vos réponces !!!
 
c'est vrai que le coup du " vec.begin() + 2 " c'était ce que je voulais faire a la base... mais par contre le find() me parait très intéressant...
 
En tout cas Merci de votre aide !!!  (ha ha je vais pouvoir passer au cour suivant !!!)  :D


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  STL ajouter des éléments dans un vector

 

Sujets relatifs
[OpenGl]Comment ajouter une deuxième lumière ?[Struts bean Tag/Commons-beanUtils] accéder aux élements d'une Map
Footprint librairie STL[XSL] lire les données qui ne font pas partie d'autres éléments
comment retourner le nombre d'éléments d'un tableau ?Définir l'ordre de chargement des éléments d'une page
Comment coloriser certain elements dans mon tableau avec css ?ajouter une imprimante en ligne de commande
ajouter un echo à chaque ligneajouter une fenetre à une application win32 console ?
Plus de sujets relatifs à : STL ajouter des éléments dans un vector


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR