Problème pour modifier des éléments d'un vecteur

Problème pour modifier des éléments d'un vecteur - C++ - Programmation

Marsh Posté le 20-04-2003 à 20:27:50    

Salut,
 
tout d'abord, le code:
 
Je définis deux tableaux:

Code :
  1. int StratsOff[] = { 0,1,2,3,4,5,7,8,11,12,13 };
  2. int StratsDef[] = { 6,9,10,11,12 };


 
J'enregistre leur nombre d'éléments:

Code :
  1. if (IndexNode == 0)
  2.       NbreStatsScan = ARRAYSIZE(StratsOff);
  3. else
  4.      NbreStatsScan = ARRAYSIZE(StratsDef);


 
Que j'utilise pour créer un vecteur de même taille:

Code :
  1. vector<int> QteStats(NbreStatsScan, NbreStatsScan + sizeof(NbreStatsScan) / sizeof(int));


 
Donc selon le choix de l'utilisateur, j'ai un vecteur nommé QteStats pouvant contenir 5 ou 11 éléments.
 
Jusqu'ici pas de problèmes...
 
Mais le problème est que je cherche dans un fichier XML des données grâce à plusieurs boucles for.
 
Alors (si je prends exemple pour un vecteur à 5 éléments) j'obtiens successivement plusieurs séries de 5 éléments.
 
Série 1: x,x,x,x,x
Série 2: y,y,y,y,y
Série 3: z,z,z,z,z
 
Si je fais tout le temps un push_back, je vais avoir un vecteur du type:
 
{x,x,x,x,x,y,y,y,y,y,z,z,z,z,z}
 
Or moi je voudrais
 
{x+y+z,x+y+z,x+y+z,x+y+z,x+y+z}
 
Donc je voudrais modifier série après série la valeur des 5 éléments du vecteur, en ajoutant la valeur actuelle plus la nouvelle valeur issue de mon XML...
 
Comment je fais ça?
 
J'ai cherché un peu partout, mais j'ai pas encore trouvé... Et ça doit pas être une réponse bien compliquée je pense...
 
Merci d'avance...

Reply

Marsh Posté le 20-04-2003 à 20:27:50   

Reply

Marsh Posté le 20-04-2003 à 20:35:05    

ben tu peux le faire à la main avec un indice, un iterateur, ou utiliser un algo de <algorithm> comme transform transform
 
mieux: utilise les std:valarray

Reply

Marsh Posté le 20-04-2003 à 21:06:06    

++Taz a écrit :


mieux: utilise les std:valarray


 
Si j'ai bien compris l'aide de Borland à ce sujet:
 
on déclare comme ça:
 

Code :
  1. valarray<int> v2(1,3);

un valarray (ça donne koi en farnçais?) de 3 éléments de valeur 1
 
Et pour changer un élément:
 

Code :
  1. v1[2] = 5;

On donne au deuxième élément de v1 la valeur 5...
 
C'est bien ça?
 
Sinon question: on peut faire avec des valarray ce qu'on peut faire avec des vector? Sinon quelles sont les différences entre eux deux?

Reply

Marsh Posté le 21-04-2003 à 12:42:01    

ben lis la doc
 
c'est fait pour faire du snumérique
 
v1+v2 donne un vecteur, somme element par élement
v1/k divise chaque élements par k
 
etc

Reply

Sujets relatifs:

Leave a Replay

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