map::insert, map::find, et map::end
Illustre comment utiliser mappage : : insertion,mappage : : recherche, et des fonctions de la bibliothèque de modèles (STL) Standard de mappage : : fin dans Visual C++.
iterator map::end( );
iterator map::find(
const Key& Key
);
pair<iterator, bool>
map::insert(
const value_type& x
);
Notes
[!REMARQUE]
Les noms de classes/paramètre dans le prototype ne correspondent pas à la version du fichier d'en-tête.certains ont été modifiés pour améliorer la lisibilité.
La fonction de fin retourne un itérateur ces points un au delà de la fin d'une séquence.recherche retourne un itérateur qui indique le premier élément dont la cléd'égalité de clés de tri.S'il n'existe aucun élément, l'itérateur égale fin.Si la clé n'existe pas, insertion l'ajoute à la séquence et au retour pair<itérateur, true>.Si la clé existe déjà, insertion ne l'ajoutez pas à la séquence et ne retourne pas pair <itérateur, false>.L'exemple suivant crée un mappage d' ints à chaîneS.Dans ce cas, le mappage est des chiffres à leurs équivalents de chaîne (1 - > « un », 2 - > « deux », etc.).Le programme lit un numéro de l'utilisateur, recherche le mot équivalent pour chaque chiffre (à l'aide de la carte), et copie les changements de nombres comme une série de mots.Par exemple, si l'utilisateur entre 25463, le programme répond à : deux cinq quatre six trois.
Exemple
// map_insert_find_end.cpp
// compile with: /EHsc
#pragma warning(disable:4786)
#include <iostream>
#include <string>
#include <map>
using namespace std;
typedef map<int, string, less<int> > INT2STRING;
int main()
{
// 1. Create a map of ints to strings
INT2STRING theMap;
INT2STRING::iterator theIterator;
string theString = "";
unsigned int index;
// Fill it with the digits 0 - 9, each mapped to its string counterpart
// Note: value_type is a pair for maps...
theMap.insert(INT2STRING::value_type(0,"Zero"));
theMap.insert(INT2STRING::value_type(1,"One"));
theMap.insert(INT2STRING::value_type(2,"Two"));
theMap.insert(INT2STRING::value_type(3,"Three"));
theMap.insert(INT2STRING::value_type(4,"Four"));
theMap.insert(INT2STRING::value_type(5,"Five"));
theMap.insert(INT2STRING::value_type(6,"Six"));
theMap.insert(INT2STRING::value_type(7,"Seven"));
theMap.insert(INT2STRING::value_type(8,"Eight"));
theMap.insert(INT2STRING::value_type(9,"Nine"));
// Read a Number from the user and print it back as words
for( ; ; )
{
cout << "Enter \"q\" to quit, or enter a Number: ";
cin >> theString;
if (theString == "q")
break;
// extract each digit from the string, find its corresponding
// entry in the map (the word equivalent) and print it
for (index = 0; index < theString.length(); index++)
{
theIterator = theMap.find(theString[index] - '0');
if (theIterator != theMap.end() ) // is 0 - 9
cout << (*theIterator).second << " ";
else // some character other than 0 - 9
cout << "[err] ";
}
cout << endl;
}
}
Entrée
12
q
Résultat de l'exemple
Enter "q" to quit, or enter a Number: 12
One Two
Enter "q" to quit, or enter a Number: q
Configuration requise
en-tête : <map>