map::insert, map::find, und map::end

Veranschaulicht, wie Zuordnung::Einfügen,Zuordnung::Suche, und Funktionen Zuordnung::Fertig stellen Standardvorlagenbibliothek (STL) in Visual C++ verwendet.

iterator map::end( ); 
iterator map::find(
   const Key& Key
);
pair<iterator, bool> 
map::insert(
   const value_type& x
);

Hinweise

HinweisHinweis

Die Klasse/Parameternamen im Prototyp stimmen nicht mit der Version in der Headerdatei ab.Einige wurden geändert, um die Lesbarkeit zu verbessern.

Die end-Funktion gibt einen Iterator diese Punkte einer hinter dem Ende einer Sequenz zurück.find gibt einen Iterator zurück, der das erste Element festlegt, dessen Sortierschlüssel Ist-Gleich-Taste.Wenn kein solches Element vorhanden ist, entspricht der Iterator end.Wenn der Schlüssel nicht bereits vorhanden ist, fügt insert sie der Sequenz und der Rückgabe pair<Iterator, true> hinzu.Wenn der Schlüssel bereits vorhanden ist, fügt insert sie nicht der Sequenz und gibt pair <Iterator, false> zurück.Im folgenden Beispiel wird eine Zuordnung von ints zu Zeichenfolges.In diesem Fall ist die Zuordnung von Ziffern in ihre Zeichenfolgen entsprechungen (1 - > „eins“, 2 „> zwei“ usw.).Das Programm liest eine Zahl vom Benutzer das Wort durchsucht, für jede Ziffer (mithilfe der Zuordnung) und gibt die Zahlen wieder als Folge von Wörtern.Wenn der Benutzer beispielsweise 25463 eingibt, reagiert das Programm mit: Zwei fünf vier sechs drei.

Beispiel

// 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;
   }
}

Eingabe

12
q

Beispielausgabe

Enter "q" to quit, or enter a Number: 12
One Two
Enter "q" to quit, or enter a Number: q

Anforderungen

Header: <map>

Siehe auch

Konzepte

Standardvorlagenbibliotheks-Beispiele