Problème tout simple - Accès à un conteneur

Problème tout simple - Accès à un conteneur - C++ - Programmation

Marsh Posté le 04-01-2006 à 20:28:44    

Salut !
 
 
J'ai un problème tout con : comment accéder au premier élément d'un conteneur (genre set, ou map) ?
 
J'ai une map de cette forme :

Code :
  1. std::map<int,std::string> uneMap

j'ai stocké trois paires dedans, par exemple avec l'instruction :

Code :
  1. uneMap.insert(std::map<int,std::string>::value_type(unEntier,unString));

et je voudrais lire le contenu de la première partie (le int) de la première paire uniquement.
 
C'est bête car je sais comment lire les premiers élements de chaque paire du conteneur (avec un itérateur : )

Code :
  1. std::map<int,std::string>::const_iterator it;
  2.        for (it=uneMap.begin();
  3.             it!=uneMap.end();
  4.             it++)
  5.            {
  6.                std::cout << (*it).first;
  7.            }

mais pas de juste un seul...
 
 
Par extension, comment lire le contenu d'un élément en particulier dans un conteneur (le troisième, le dixième etc.) ?
 
 
Voila, merci pour votre aide.

Reply

Marsh Posté le 04-01-2006 à 20:28:44   

Reply

Marsh Posté le 05-01-2006 à 12:48:13    

Code :
  1. std::map<int,std::string>::const_iterator it = uneMap.begin();
  2. std::cout << it->first;

Reply

Marsh Posté le 05-01-2006 à 14:00:24    

Luke58 a écrit :

Par extension, comment lire le contenu d'un élément en particulier dans un conteneur (le troisième, le dixième etc.) ?


une map n'a pas de gestion d'ordre des éléments, donc attention au sens que tu donnes à "premier", "troisième" ou "dixième", sans quoi, tu pourrais avoir des surprises ...
Quoi qu'il en soit, pour y accéder, tu peux toujours utiliser l'itérateur :
 

Code :
  1. std::map<int, std::string>::const_iterator it = uneMap.begin() +10; // donne directement un itérateur incrémenté 10 fois


 
 
mais si tu comptes lire un seul élément dans ta map, tu te serviras plutôt de la clé :
 

Code :
  1. uneMap[123] = "chaine"; // insertion d'un element dans la map
  2. std::map<int, std::string>::const_iterator it = uneMap.find(123); // recherche d'un element dans la map


Reply

Marsh Posté le 06-01-2006 à 11:54:06    

Merci beaucoup

Reply

Marsh Posté le 15-03-2006 à 13:17:28    

question tout con.
Je suis debutant en C++ et je voudrais vous exposer un probleme:
Au fait je dispose d element de 1 a N et de deux listes L1 et l2.
Je voudrais ecrire le programme suivant:
pour j allant de 1 a N  
verifier si j est lelement de L1 ou L2.
Sinon envoyer un message d erreur.
Je vous remercie

Reply

Marsh Posté le 15-03-2006 à 13:36:12    

retourne travailler au lieu d'essayer de faire faire tes exos par quelqu'un d'autre :o

Reply

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

j'aime l'amabilité de ce forum

Reply

Marsh Posté le 22-03-2006 à 19:52:10    

- y'a pas de question.
- y'a pas de probleme.
- y'a juste à deviner que c'est un exo de cours comme y'en a déjà des tonnes.

Reply

Sujets relatifs:

Leave a Replay

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