Sdílet prostřednictvím


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>

Viz také

Koncepty

Standardní šablona knihovny vzorků