STL : Comment afficher les élements dans un vector dans un endroit voulu

Signaler
Messages postés
250
Date d'inscription
lundi 9 mars 2009
Statut
Membre
Dernière intervention
4 décembre 2013
-
Messages postés
1115
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
6 mai 2021
-
Bonjour à tous ;
je voudrai avoir de ce code un affichage de ce genre:
1 a b c d e f g h 1 
8 t c f d r f c t 8 
7 p p p p p p p p 7 
6 _ _ _ _ _ _ _ _ 6 





mais je ne comprends pas comment il procède vraiment l'itérateur :
Plateau.cpp
std::vector<Case*> SS;
Plateau::Plateau(){
Case* P1 = new Case(0,0,'1');
Case* P2 = new Case(1,0,'a');
Case* P3 = new Case(2,0,'b');
Case* P4 = new Case(3,0,'c');
Case* P5 = new Case(4,0,'d');
Case* P6 = new Case(5,0,'e');
Case* P7= new Case(6,0,'f');
Case* P8 = new Case(7,0,'g');
Case* P9 = new Case(8,0,'h');
Case* P10 = new Case(9,0,'1');
SS.push_back(P1);
SS.push_back(P2);
SS.push_back(P3);
SS.push_back(P4);
SS.push_back(P5);
SS.push_back(P6);
SS.push_back(P7);
SS.push_back(P8);
SS.push_back(P9);
SS.push_back(P10);

Case* P11 = new Case(0,1,'8');
Case* TourN = new Case(1,1,'t');
Case* CavalN = new Case(2,1,'c');
Case* FouN = new Case(3,1,'f');
Case* DameN = new Case(4,1,'d');
Case* RoiN = new Case(5,1,'r');
Case* FouN2 = new Case(6,1,'f');
Case* CavalN2 = new Case(7,1,'c');
Case* TourN2 = new Case(8,1,'t');
Case* P12 = new Case(9,1,'8');
SS.push_back(P11);
SS.push_back(TourN);
SS.push_back(CavalN);
SS.push_back(FouN);
SS.push_back(DameN);
SS.push_back(RoiN);
SS.push_back(FouN2);
SS.push_back(CavalN2);
SS.push_back(TourN2);
SS.push_back(P12);
// pions noirs
Case *P13 = new Case(0,2,'7');
Case* PionN1 = new Case(1,2,'p');
Case* PionN2= new Case(2,2,'p');
Case* PionN3 = new Case(3,2,'p');
Case* PionN4 = new Case(4,2,'p');
Case* PionN5 = new Case(5,2,'p');
Case* PionN6 = new Case(6,2,'p');
Case* PionN7 = new Case(7,2,'p');
Case* PionN8 = new Case(8,2,'p');
Case *P14 = new Case(9,2,'7');
    SS.push_back(P13);
SS.push_back(PionN1);
SS.push_back(PionN2);
SS.push_back(PionN3);
SS.push_back(PionN4);
SS.push_back(PionN5);
SS.push_back(PionN6);
SS.push_back(PionN7);
SS.push_back(PionN8);
SS.push_back(P14);
// cases vide ligne 6
   Case* P15 = new Case(0,3,'6');
Case* Vide1 = new Case(1,3,'_');
Case* Vide2 = new Case(2,3,'_');
Case* Vide3 = new Case(3,3,'_');
Case* Vide4 = new Case(4,3,'_');
Case* Vide5 = new Case(5,3,'_');
Case* Vide6= new Case(6,3,'_');
Case* Vide7 = new Case(7,3,'_');
Case* Vide8 = new Case(8,3,'_');
Case* P16 = new Case(9,3,'6');
SS.push_back(P15);
SS.push_back(Vide1);
SS.push_back(Vide2);
SS.push_back(Vide3);
SS.push_back(Vide4);
SS.push_back(Vide5);
SS.push_back(Vide6);
SS.push_back(Vide7);
SS.push_back(Vide8);
SS.push_back(P16);



}
Plateau::affichage(){

 int i=0 ;
std::vector<Case*>::const_iterator ii;

for(ii = SS.begin();ii!=SS.end();ii++){

if(i<10){

cout << *ii<< " " ;
i++;

}
else{


        cout << endl ;
cout << *ii<< " " ;
i=0;  //on initialise

}

}

}




à l'affichage

1 a b c d e f g h 1 
8 t c f d r f c t 8 7 
p p p p p p p p 7 6 _ 
_ _ _ _ _ _ _ 6 


1 réponse

Messages postés
1115
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
6 mai 2021
4
salut,

dans ton else tu places un "" et 1 élément, donc i doit etre à 1 et pas à 0 (vu que tu as déjà placé un élément).