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

 


Dernière réponse
Sujet : [C++] Comment copier les membres d'un array vector vers une autre...
Willythekid uh? hein ? "la doc sur les vectors dans la SDK" ???
 
La doc sur la version microsoft (VC++ 6) de la STL est la :
http://msdn.microsoft.com/library/ [...] tdlbhm.htm
 
ou la :
http://www.dinkumware.com/htm_cpl/index.html
 
a+ et bonne chance :)

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Willythekid uh? hein ? "la doc sur les vectors dans la SDK" ???
 
La doc sur la version microsoft (VC++ 6) de la STL est la :
http://msdn.microsoft.com/library/ [...] tdlbhm.htm
 
ou la :
http://www.dinkumware.com/htm_cpl/index.html
 
a+ et bonne chance :)
Alload :D
 
Enfin merci, c'est plutôt cool les vectors.
:)
 
Sinon, où est la doc sur les vectors dans la SDK?
Willythekid Ah euh...oui desole :)
C'est avec des conneries comme ca qu'on passe une demi-heure a debugger 3 lignes :)
El_gringo

titi_4js a écrit a écrit :

euh Willythekid, t'es sur que c'est pas le 2 qui est efface de ton tableau plutot : v.begin() pointe sur le premier element du vecteur (0) et dinc v.begin()+1 pointe sur le 2eme (1)...  




 
tu chipottes un peu toi...

titi_4js euh Willythekid, t'es sur que c'est pas le 2 qui est efface de ton tableau plutot : v.begin() pointe sur le premier element du vecteur (0) et dinc v.begin()+1 pointe sur le 2eme (1)...
Willythekid Heu...on se calme :) Pas besoin de tout ca !
 
L'interet du vector (ou le prb, c'est selon) c'est justement de faire tout ca pour toi !! Pourquoi tu as choisi un vector et pas un simple tableau (/pointer) ???
 
En fait quand tu delete un element, il deplace tout ce qu'il y a derriere d'un cran...Meme chose quand tu en insert un. Donc si c'est ce que tu cherche c'est parfait (voir exemple plus bas).
 
Le prb, c'est que, a moins de supprimer le dernier element du vector, il y a un deplacement des elements qui prend du temps(d'autant plus que l'element supprime se trouve en tete). Donc au cas ou tu fais de l'insertion/suppression a donf : il y a un gros prb. Mieux vaut choisir les list (ou les deques?).
 
Bref pour exemple (tire de MSDN):
 
vector<int> MyVector;
 
// size = 0
// contenu du vector : {}
 
for (int i=0; i<=9; i++) {
   MyVector.push_back(i);
}
 
// size = 10
// contenu du vector : {0,1,2,3,4,5,6,7,8,9}
// MyVector[1] = 1
 
MyVector.erase(MyVector.begin() + 2);
 
// size = 9
// contenu du vector : {0,2,3,4,5,6,7,8,9}
// MyVector[1] = 2
 
PS: tu aurais pu regarder dans la MSDN : tout ca est explique tres clairement !!
wpk Donc :
vector<int> v(10);  //<- ca c'est ton vecteur, ici, j'en ai mis un au pif qui a 10 elements
vector<int>::iterator it=v.begin()+5;  //<-ca c'est un iterateur sur ton vecteur, il pointe ici sur le 5eme element du vecteur (a priori, qd tu efface ton element, tu devrais utiliser un iterateur qui lui va pointer sur l'element supprime ici 5)
 
copy(it+1,v.end(),it);  //<-ca c'est un algorithme #include <algorithm> qui effectue la copie de tous les elements entre la position it+1 et la fin de ton vecteur dans le meme vecteur mais a partir de la position de l'elt supprime
en gros : *it=*(it+1), *(it+1)=*(it+2), ... *(v.end()-1)=*(v.end())
 
j'espere que j'ai ete suffisament clair (passe minuit, mon cerveau downclocke...)
Alload Tu pourrais expliquer comment ton code marche?
SVP
wpk euh,  
 
exemple:
 
vector<int> v(10);
vector<int>::iterator it=v.begin()+5;
 
copy(it+1,v.end(),it);
Alload Je sais comment effacer un membre d'un tableau de vector, mais j'aimerais en plus alors déplacer tous les membres suivant celui effacer d'un cran vers le bas.
 
Par exemple: j'efface le membre 5, donc le membre 6 devient le 5, le membre 7 devient le 6, etc...
 
Comment puis-je faire ça?

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