list et map

list et map - C++ - Programmation

Marsh Posté le 17-01-2003 à 16:04:17    

Code :
  1. #include <list>
  2. #include <map>
  3. #include <string>
  4. using namespace std;
  5. typedef map<int,string> mp;
  6. struct tstruct{
  7. string str;
  8. mp map;
  9. };
  10. typedef list<tstruct> li;
  11. void main(){
  12. li l1;
  13. }


 
1)on me demande de faire une map contenant des pairs jai fait comme ca :
 

Code :
  1. typedef pair<int,string> pr;
  2. typedef map<pr> mp;


 
mais ca marche pas qqn aurait une idee?
 
 
2) comment utiliser la fct sort d'une list ??? jai ete voir sur msdn mais pas dexemple  

Reply

Marsh Posté le 17-01-2003 à 16:04:17   

Reply

Marsh Posté le 17-01-2003 à 16:19:41    

une std::map contient deja des paires.
Quand tu fais  
 
typedef std::map<Toto, Tata> MaMap;
 
pour associer un Tata a un Toto, le type de ta paire est: MaMap::value_type, qui est lui meme en fait std::pair<Toto, Tata>.
 
Tu inseres un element avec ma_map.insert(MaMap::value_type(Toto(123), Tata(456)));
 
J'ai oublie, si tu veux faire du C++ serieux, achete le Stroustrup, et trouve des exemples de code avec la STL


Message édité par kenshiro182 le 17-01-2003 à 16:20:36
Reply

Marsh Posté le 17-01-2003 à 16:59:52    

ok merci je vais regarder tout ca.
 
 
en tout cas pour le sort jy arrive mais seulement si c une simple liste dentier ou de string.
 
 
ici jaimerai trier sur les string mais comme ya une structure.....
 
 
ou alors je parcours la liste et jinsere au bon endroit a chaque nouvel item mais bon cest ptet pas tres clean autant faire du c alors


Message édité par red faction le 17-01-2003 à 17:10:54
Reply

Marsh Posté le 17-01-2003 à 22:44:29    

pour trier une liste il suffit de definir
l'operateur de comparaison < sur l'objet
de cette liste ou d'appeler sort avec un predicat
de comparaison.
 
LeGreg


---------------
voxel terrain render engine | animation mentor
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed