Créer une méthode qui renvoie un vector à deux dimensions.

Créer une méthode qui renvoie un vector à deux dimensions. - C++ - Programmation

Marsh Posté le 22-03-2006 à 11:09:10    

Bonjour, je souhaite créer une méthode permettant de renvoyer une valeur et son association.
 
En l'occurence, je cherche à récupérer un vector à partir de cette méthode, qui liste des numéros de trames, ainsi que leur longueur associée.
 
Exemple :
 
N° de trame      Taille
       1                 5
       2                 4
       3                 7
 
quelqu'un aurait-il une idée ?
 
Merci beaucoup pour vos réponses ! ;)

Reply

Marsh Posté le 22-03-2006 à 11:09:10   

Reply

Marsh Posté le 22-03-2006 à 11:11:12    

std::vector<int> tailles ou tailles[i] te donne la taille de la trame#i

Reply

Marsh Posté le 22-03-2006 à 11:14:17    

ah je crois que j'ai trouvé, il faut utiliser std::map pour les hachages ..

Reply

Marsh Posté le 22-03-2006 à 11:15:32    

bah t'as pas t'as pas du lire grand chose sur std::map. encore une fois, si t'es index sont numériques et contigus, alors un vector c'est bon.

Reply

Marsh Posté le 22-03-2006 à 11:17:47    

Taz a raison;
de plus, std::map autorise les doublons, ce que ne permet pas std::vector.

Reply

Marsh Posté le 22-03-2006 à 11:22:13    

ah non, pas de doublon sur la clef dans une map. dans une multimap, oui

Reply

Marsh Posté le 22-03-2006 à 11:29:32    

mais std::map<int cle, int valeur> ma_table, ca marcherait pas ?

Reply

Marsh Posté le 22-03-2006 à 11:42:10    

exact, l'ancienne clef est écrasée.

Reply

Marsh Posté le 22-03-2006 à 11:44:27    

c'est à dire que std:vector suffirait largement il semble :  
 
ton numéro de trame en index dans le vecteur, et la taille dans la valeur associée à l'index.
 
Après une map fonctionnera aussi, mais le vecteur semble plus indiqué, voilà tout.

Reply

Marsh Posté le 22-03-2006 à 11:51:32    

le truc c'est que je n'ai pas stocké le contenu de ma trame dans un vector ou dans quelconque tableau que ce soit, je connais par contre les deux parametres de taille et de numéro de trame ...

Reply

Marsh Posté le 22-03-2006 à 11:51:32   

Reply

Marsh Posté le 22-03-2006 à 12:01:21    

et ?

Reply

Marsh Posté le 22-03-2006 à 13:59:18    

_darkalt3_ a écrit :


Après une map fonctionnera aussi, mais le vecteur semble plus indiqué, voilà tout.


 
bin seulement si on est sur que c'est bien continu, contigu, et commencant a 0
La son exemple semble grosso modo concordé avec tout ca, mais c'est pas forcémeent sur

Reply

Marsh Posté le 22-03-2006 à 14:17:18    

et question noobesque : un vector a plus d'une dimension, on fait comment ? un vector dans un vector?

Reply

Marsh Posté le 22-03-2006 à 14:21:14    

heuh bin ouais

Reply

Marsh Posté le 22-03-2006 à 14:26:22    

chrisbk a écrit :


_darkalt3_ a écrit :

Après une map fonctionnera aussi, mais le vecteur semble plus indiqué, voilà tout.

bin seulement si on est sur que c'est bien continu, contigu, et commencant a 0
La son exemple semble grosso modo concordé avec tout ca, mais c'est pas forcémeent sur


 
 [:aloy]

Reply

Marsh Posté le 23-03-2006 à 09:09:53    

probleme:  
 

Code :
  1. vector< vector<int> > table;
  2. table[0].push_back(2);
  3. cout << table[0][0];


plante, comme si table[0][0] était vide ...

Reply

Marsh Posté le 23-03-2006 à 09:48:27    

Code :
  1. vector< vector<int> > table;
  2. vector<int> ligne;
  3. ligne.push_back(2);
  4. table.push_back(ligne);
  5. cout << table[0][0];


 
Y a moyen de faire plus propre néanmoins.

Reply

Sujets relatifs:

Leave a Replay

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