Ajouter des éléments dans un vector.

Ajouter des éléments dans un vector. - C++ - Programmation

Marsh Posté le 05-01-2005 à 16:44:37    

Bonjour,
 
Je viens d'apprendre ce que s'était un vecteur en C++ et j'ai vu plein de fonction pour ajouter, supprimer, insérer des élements mais je voi pas des fonction pour faire ceci:
 
String var="truc,machin,autre,blabla";
==>comment mettre "var" dans un vector sachant que c'est la virgule qui sépare chaque élement ?
 
Merci d'avance...
 

Reply

Marsh Posté le 05-01-2005 à 16:44:37   

Reply

Marsh Posté le 05-01-2005 à 17:10:03    

il n'y a pas à ma connaissance de fonction qui fasse ca
c'est à toi de t'y coller, et il y a mille et une façon de le faire
 
bon comme je suis gentil, voilà ce que je ferais:
 

Code :
  1. string var="truc,machin,autre,blabla";
  2. vector<string> vectStr;
  3. string strTmp
  4. for(int i=0; i<var.size(); i++)
  5. {
  6.   if(var[i]==',')
  7.   {
  8.     vectStr.push_back(strTmp);
  9.     strTmp.erase();
  10.   }
  11.   else
  12.   {
  13.     strTmp += var[i];
  14.   }
  15. }
  16. // ajout du dernier elt
  17. vectStr.push_back(strTmp);


 
pis après il faut gérer les exceptions

Reply

Marsh Posté le 05-01-2005 à 17:10:10    

find_first_of, etc ...

Reply

Marsh Posté le 05-01-2005 à 17:15:10    

> casafa
 
  Bonsoir. Pour faire ce que tu veux, il faut définir un sens particulier pour l'opérateur virgule, sens que n'a pas cet opérateur en c++ 'natif'.
  ça a déjà été fait ici :  http://forum.hardware.fr/hardwaref [...] 0342-1.htm

Reply

Marsh Posté le 05-01-2005 à 17:42:58    

ah j'avais rien bité. Y a tout dans boost

Reply

Marsh Posté le 05-01-2005 à 17:51:03    

Et en plus, contrairement à strtok, c'est réentrant (thread-safe).
http://www.boost.org/libs/tokenizer/char_separator.htm
 
Quel dommage qu'ils ne sachent pas écrire anglais correctement (tokenizer au lieu de tokeniser). :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed