map::insert, map::find, a map::end
Znázorňuje použití map::insert, map::find, a map::end funkce standardní šablonu knihovny (STL) v jazyce C++.
iterator map::end( );
iterator map::find(
const Key& Key
);
pair<iterator, bool>
map::insert(
const value_type& x
);
Poznámky
[!POZNÁMKA]
Názvy tříd/parametr v prototyp verze v záhlaví souboru neodpovídají.Některé byly upraveny, aby se zlepšila čitelnost.
End funkce vrátí iterace, který ukazuje jeden za koncem sekvence.najít vrátí iterace, který určuje první prvek, jehož se rovná klíče řazení klíčů.Pokud neexistuje žádný takový prvek, iterace se rovná end.Pokud klíč dosud neexistuje, Vložit bude přidání pořadí a vrátit se pair<iterační, true>.Pokud klíč již existuje, Vložit není jej přidat do pořadí a vrací pair <iterační, false>.Následující příklad vytvoří mapu ints řetězecs.V tomto případě je mapování z číslic na jejich ekvivalenty v řetězci (1 - > "Jedna" 2 - > "Dva" a podobně).Program čte číslo uživatele nalezne odpovídající slovo pro každou číslici (pomocí mapy) a vytiskne číslo zpět jako řadu slov.Například, pokud uživatel zadá 25463, program odpoví: dva pět čtyři šest tři.
Příklad
// 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;
}
}
Vstup
12
q
Vzorový výstup
Enter "q" to quit, or enter a Number: 12
One Two
Enter "q" to quit, or enter a Number: q
Požadavky
Záhlaví: <map>