1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
|
std::vector<Case*> SS; // ici je crée un vector de la classe Case
Plateau::Plateau(){
Case* P1 = new Case(0,0,' '); // création de chaque case
Case* P2 = new Case(0,1,'a');
Case* P3 = new Case(0,1,'b');
Case* P4 = new Case(0,3,'c');
Case* P5 = new Case(0,4,'d');
Case* P6 = new Case(0,5,'e');
Case* P7= new Case(0,6,'f');
Case* P8 = new Case(0,7,'g');
Case* P9 = new Case(0,8,'h');
Case* P10 = new Case(0,9,' ');
SS.push_back(P1); // insertion dans le vector
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);
}
// je surcharge pour pouvoir afficher l'element par le biais de l'itérator
ostream &operator<<(ostream& out , Case*P1){
out << P1->GetEtiquetteCase();
return out ;
}
et c'est dans cette méthode qui suit qui me pose problème :
d'abord en passant par l'itérator il ne m'affiche rien
1234567 |
std::vector<Case*>::iterator ii;
for(ii=SS.begin();ii!=SS.begin();ii++){
cout << *ii <<" " ;
} |
ensuite si je met par exemple comme de simple vecteur en mettant çà
12 |
std::cout << SS[0][4] <<" "; |
il m'affiche un petit carré insensé
je voulais afficher comme çà
' ' a b c d e f g h ' ' ( cordonnées ) ' ' -> espace
1 t c f d r f c t 1 (1ère ligne avec la case des pièces )
avant quand j'ai fait SS vector de char et que qd j'ai écrit çà !! çà marche et ce genre d'affichage que je voulais faire mais avec un vector de classe
12345678 |
//// for( i= 0;i<10;i++){
//// for( j =0;j<10;j++){
//// std::cout << SS[i][j] <<" ";
//// }
//// cout << endl ;
////
//// } |
|
Partager