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

  FORUM HardWare.fr
  Programmation
  C++

  Utiliser un iterator sur un vector à 2 dimensions - position

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Utiliser un iterator sur un vector à 2 dimensions - position

n°1994524
guepe
J'ai du noir sur la truffe ?
Posté le 19-05-2010 à 17:53:34  profilanswer
 

J'utilise un iterateur à 2 dimensions, et je cherche à connaître la position pointée dans chaque dimension.
 
À une dimension c'est facile :  
 

Code :


std::vector<_Type > vect;
std::vector<_Type>::const_iterator it;
cout << it - vect.begin()<<endl;
 
Et à 2 dimensions, comment connaître la position dans chaque dimension ?

Code :
  1. std::vector<std::vector<_Type > > vect2D;
  2. std::vector<std::vector<_Type> >::const_iterator it;


 
Merci !


---------------
Un blog qu'il est bien
mood
Publicité
Posté le 19-05-2010 à 17:53:34  profilanswer
 

n°1994526
theshockwa​ve
I work at a firm named Koslow
Posté le 19-05-2010 à 17:56:15  profilanswer
 

tu dois itérer deux fois, du coup ...
 
Mais quand tu parles de position en deux dimensions, j'ai l'intuition que tu es mal parti. Ces vecteurs représentent quoi dans ton programme ?


---------------
last.fm
n°1994527
guepe
J'ai du noir sur la truffe ?
Posté le 19-05-2010 à 17:59:48  profilanswer
 

theshockwave a écrit :

tu dois itérer deux fois, du coup ...

 

Mais quand tu parles de position en deux dimensions, j'ai l'intuition que tu es mal parti. Ces vecteurs représentent quoi dans ton programme ?

 

Des groupes ; la première dimension l'ensemble des groupes, et la deuxième est une liste d'objets qui sont en fait un même «noeuds électrique»

 

[edit] En tout, cela forme une «netlist»


Message édité par guepe le 19-05-2010 à 18:00:30

---------------
Un blog qu'il est bien
n°1994531
theshockwa​ve
I work at a firm named Koslow
Posté le 19-05-2010 à 18:04:59  profilanswer
 

ok, alors :

Code :
  1. vector< vector< int > > vect;
  2. vector< vector< int > >::const_iterator yBegin = vect.begin();
  3. for( vector< vector< int > >::const_iterator ity = yBegin; ity != vect.end(); ++ity )
  4. {
  5.     vector< int >& vectx = *ity;
  6.     vector< int >::const_iterator xBegin = vectx.begin();
  7.     for( vector< int >::const_iterator itx = xBegin; itx != vectx.end(); ++itx )
  8.     {
  9.         cout << "x:" << itx - xBegin << ", y:" << ity - yBegin <<endl;
  10.     }
  11. }


---------------
last.fm
n°1994532
guepe
J'ai du noir sur la truffe ?
Posté le 19-05-2010 à 18:08:15  profilanswer
 

theshockwave a écrit :

ok, alors :

Code :
  1. vector< vector< int > > vect;
  2. vector< vector< int > >::const_iterator yBegin = vect.begin();
  3. for( vector< vector< int > >::const_iterator ity = yBegin; ity != vect.end(); ++ity )
  4. {
  5.     vector< int >& vectx = *ity;
  6.     vector< int >::const_iterator xBegin = vectx.begin();
  7.     for( vector< int >::const_iterator itx = xBegin; itx != vectx.end(); ++itx )
  8.     {
  9.         cout << "x:" << itx - xBegin << ", y:" << ity - yBegin <<endl;
  10.     }
  11. }



 
C'est malheureusement ce que je craignais ; depuis l'iterator itx il n'est pas possible de récupérer sa position dans la dimension «d'au dessus» :/
 
Bon ben je vais devoir passer les 2 iterator en paramètre :-/


---------------
Un blog qu'il est bien
n°1994533
theshockwa​ve
I work at a firm named Koslow
Posté le 19-05-2010 à 18:09:02  profilanswer
 

guepe a écrit :


 
C'est malheureusement ce que je craignais ; depuis l'iterator itx il n'est pas possible de récupérer sa position dans la dimension «d'au dessus» :/
 
Bon ben je vais devoir passer les 2 iterator en paramètre :-/


 
Sinon, tu peux calculer la position avant et la transmettre à ta fonction, si tu as juste besoin de la position


---------------
last.fm
n°1994535
guepe
J'ai du noir sur la truffe ?
Posté le 19-05-2010 à 18:16:52  profilanswer
 

theshockwave a écrit :


 
Sinon, tu peux calculer la position avant et la transmettre à ta fonction, si tu as juste besoin de la position


Oui c'est sur, enfin cela revient au même …
Merci !


---------------
Un blog qu'il est bien
n°1994551
Joel F
Real men use unique_ptr
Posté le 19-05-2010 à 19:30:34  profilanswer
 

t'as le droit de fair eun iterator_adaptor que tu construit à partir des deux et dont le * et ++ fait la tambuoille en interne.

n°1994565
guepe
J'ai du noir sur la truffe ?
Posté le 19-05-2010 à 20:36:50  profilanswer
 

Joel F a écrit :

t'as le droit de fair eun iterator_adaptor que tu construit à partir des deux et dont le * et ++ fait la tambuoille en interne.


En fait je suis finalement en train de faire exactement cela …  :whistle:


---------------
Un blog qu'il est bien

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

  Utiliser un iterator sur un vector à 2 dimensions - position

 

Sujets relatifs
Quand utiliser le srand ?Utiliser libcurl avec CodeBlocks
oracle utiliser la même table pour lire ....Utiliser cURL PHP en ligne de commande Windows
Background d'une DIV fixed et position.template : utiliser un multimap
[EXCEL] utiliser SI avec ET et OUGolive: Position d'image
Position JMenuItemImporter et utiliser des bibliothèques en vbs
Plus de sujets relatifs à : Utiliser un iterator sur un vector à 2 dimensions - position


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