non. On est pas en java.
Ton vector de pion il contient des pions, pas des pion*.
Le message est plus qu'explicite sur ce point.
ref: http://www.cplusplus.com/reference [...] push_back/
Autre chose, vector <vector<Pion>> tableau; n'est pas un vrai tableau 2D.
Il faut donc l'initialiser en 2 fois.
Donc:
Code :
- vector <vector<Pion>> tableau;
- for (int i=0; i<5; i++)
- {
- // Ajout nouveau tableau de pion
- vector<Pion> p;
- for (int j=0; j<5; j++)
- p.push_back(Pion());
- tableau.push_back(p);
- }
|
Cependant, la tu fais trop de copie inutile.
Mieux:
Code :
- vector <vector<Pion>> tableau(5);
- for(std::size_t i=0;i<tableau.size();++i)
- tableau[i].resize(5);
|
Ensuite vector n'est pas optimal pour les tableaux 2D.
Mieux vaut utiliser boost::multi_array ou un tableau NRC 2D façon Knuth.
Message édité par Joel F le 10-01-2010 à 10:04:32