Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

conception

2 réponses
Avatar
mohamed92000
Bonjour à tous,
Voila je suis entrein de travailler sur une conception, j'ai une idée
mais j'aimerai bien confirmer.
-Je reçois des données brutes: pour chaque donnée je dois spécifier
son type et son information.En gros une donnée est représenté par un
type et une information. Cette information de son coté dispose de
quelques on va dire informations la concerant.

moi je propose une map avec comme clé le type "string" et la valeur
une autre map avec la clé l'information"int, bool,.." et sa valeur un
vecteur d'informations de l'information.
par exemple :
la donnée : type : A, l'infomation :"50" et pour l'affichage, cette
information est representée par une "flêche" et sa position à
"droite".
1-l'information :
typedef std::map< int, std::vector>info;

std::vector<std::string> InfoInfomation(2);
InfoInfomation[0] = "flêche"; InfoInfomation[1]="droite";
info Informaion;
Informaion[0]= 50;
Informaion[50]= InfoInfomation ;

2-données :
std::map< std::string, info> donnee;

donnee[0]= A;
donnee[A] = Informaion;

Moi je trouve un peu lourd le remplissage, ensuite pour l'utilisation
il faut lister tous la donnée "map".
Un autre problème est ce qu'il est possible dans une map avoir
plusieur type de valeur c.a.d "string, int,..".
pour finir biensur le but est de concevoir quelque chose de générique
et qui peu changer de taille avec le temps esce que cela convient."un
peu long excusez moi" merci d'avance

2 réponses

Avatar
Benoit Rousseau
mourad wrote:
Bonjour à tous,


[skip la partie explication embrouillée :-) ]

moi je propose une map avec comme clé le type "string" et la valeur
une autre map avec la clé l'information"int, bool,.." et sa valeur un
vecteur d'informations de l'information.

par exemple :
la donnée : type : A, l'infomation :"50" et pour l'affichage, cette
information est representée par une "flêche" et sa position à
"droite".


???

1-l'information :
typedef std::map< int, std::vector>info;


Ca ne marchera pas : std::vector doit avoir un type.

std::vector<std::string> InfoInfomation(2);
InfoInfomation[0] = "flêche"; InfoInfomation[1]="droite";
info Informaion;
Informaion[0]= 50;
Informaion[50]= InfoInfomation ;


ca ne marchera pas non plus, Information[0] et Information[50] devront
avoir le même type (ou dériver du même type)

2-données :
std::map< std::string, info> donnee;
donnee[0]= A;
donnee[A] = Informaion;


La clef est une std::string; tu dois faire donnee["..."] = ...
et même remarque pour le type à droite de '='

Moi je trouve un peu lourd le remplissage, ensuite pour l'utilisation
il faut lister tous la donnée "map".
Un autre problème est ce qu'il est possible dans une map avoir
plusieur type de valeur c.a.d "string, int,..".


Je te soupsonne fortement d'arriver du monde Java où tous les objets
dérivent d'un même type de base et ou les containers ne sont pas typés.

Mais tu pourrais, par exemple, recréer ce type de base et en faire
hériter tes informations. Bien sûr, si tes infos sont toutes de type
'simple', ce sera chiant à faire.

En fait ton message est un peu trop confus. Peut être parceque tu ne
sais pas exactement ce que tu veux faire toi non plus :-)
En donnant plus d'informations sur tes types, et sur ce que tu veux en
faire, on pourrait peut-être mieux t'aider.



--
--------------------------------------------
Benoît Rousseau : roussebe at spray dot se
Jouez en programmant : http://realtimebattle.sourceforge.net/

Avatar
Loïc Joly
Benoit Rousseau wrote:
Mais tu pourrais, par exemple, recréer ce type de base et en faire
hériter tes informations. Bien sûr, si tes infos sont toutes de type
'simple', ce sera chiant à faire.


Utiliser un template pour les types simples dérivés peut rendre la tâche
un peu moins chiante.

--
Loïc