A priori j'ai réussi à m'en sortir avec un vector qui contient des map, voici le code que j'ai actuellement et qui a l'air de fonctionner nickel (sauf que j'utilise une vieille boucle sans iterator pour afficher mon tableau)
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
| #include <iostream>
#include <map>
#include <vector>
#include <string>
#define SURFACE 1
#define COORDS 2
int main(int argc,char **argv){
typedef std::map<int,std::string> maMap;
typedef std::vector<maMap> monTab;
monTab listeAffichage;
maMap affichage;
affichage[SURFACE]="ma super surface";
affichage[COORDS]="mes super coords";
listeAffichage.push_back(affichage);
for(int i=0;i<listeAffichage.size();i++){
std::cout<<listeAffichage[i][SURFACE]<<std::endl;
}
return 0;
} |
Mon dernier problème est que pour l'instant j'ai uniquement des std::string dans mon map, sauf que là j'aimerai avoir 2 types (SDL_Rect et SDL_Surface), sauf qu'apparemment je ne peux pas faire de template genre
typedef std::map<int,T> maMap;
afin de pouvoir accueillir mes 2 types dans le map, comment faire ?
Autre question, comment utiliser l'iterator pour faire la même chose qu'avec ma vieille boucle ?
Dans l'optique de programmer "propre" en C++, j'aimerai savoir si vous auriez fait autremment, s'il y a des choses qui vous pique les yeux dans mon code, enfin en gros, qu'est-ce que vous changeriez dans mon code.
Merci d'avance !
Partager