map::map

Erstellt eine Zuordnung, die leer ist, oder die eine Kopie von alle oder nur einen Teil einer anderen Zuordnung ist.

map( );
explicit map(
   const Traits& _Comp
);
map(
   const Traits& _Comp,
   const Allocator& _Al
);
map(
   const map& _Right
);
template<class InputIterator>
   map(
      InputIterator _First,
      InputIterator _Last
   );
template<class InputIterator>
   map(
      InputIterator _First,
      InputIterator _Last,
      const Traits& _Comp
   );
template<class InputIterator>
   map(
      InputIterator _First,
      InputIterator _Last,
      const Traits& _Comp,
      const Allocator& _Al
   );
map(
   map&& _Right
);

Parameter

Parameter

Description

_Al

Die für dieses Zuordnungsobjekt verwendet werden, Speicherreservierungsklasse, das zu Allocator führt.

_Comp

Die Vergleichsfunktion des Typs constTraits verwendet, um Elemente in der Zuordnung zu sortieren, die zu hash_compare führt.

_Right

Die Zuordnung, von der der erstellte Satz, eine Kopie sein soll.

_First

Die Position des ersten Elements im Bereich von Elementen kopiert werden.

_Last

Die Position des ersten Elements über den Bereich von Elementen hinaus kopiert werden.

Hinweise

Alle Konstruktoren speichern einen Typ allocator-Objekt, das Arbeitsspeicherspeicher für die Zuordnung verwaltet und der später zurückgegeben werden kann, indem get_allocator aufruft.Der Belegungsfunktionsparameter wird häufig in Klassendeklarationen und in den Vorverarbeitungsmakros weggelassen, die verwendet werden, um alternative Belegungsfunktionen zu ersetzen.

Alle Konstruktoren initialisieren ihre Zuordnung.

Alle Konstruktoren speichern ein Funktionsobjekt Typ von Merkmalen, das verwendet wird, um eine Bestellung mit den Schlüsseln der Zuordnung zu erstellen und das später zurückgegeben werden kann, indem key_comp aufruft.

Die ersten drei Konstruktoren geben eine leere ursprüngliche Zuordnung an, die den Typ der zweite, wenn sie verwendet werden _Comp Vergleichsfunktion () wird die Reihenfolge der Elemente und der Drittels den verwendet werden Belegungsfunktionstyp (_Al) explizit angibt herstellen.Das Schlüsselwort explicit unterdrückt bestimmte Arten der automatische Konvertierung.

Der vierte Konstruktor wird eine Kopie der Zuordnung _Right an.

Die folgenden drei Konstruktoren kopieren den Bereich [_First, _Last) einer Zuordnung bei Erhöhung der Deutlichkeit, wenn sie den Typ der Vergleichsfunktion der Klasse Traits und der Belegungsfunktion angeben.

Der letzte Konstruktor wird eine Kopie der Zuordnung an, indem er _Right verschoben wird.

Beispiel

// map_map.cpp
// compile with: /EHsc
#include <map>
#include <iostream>

int main( )
{
   using namespace std;
   typedef pair <int, int> Int_Pair;
   map <int, int>::iterator m1_Iter, m3_Iter, m4_Iter, m5_Iter, m6_Iter, m7_Iter;
   map <int, int, greater<int> >::iterator m2_Iter;

   // Create an empty map m0 of key type integer
   map <int, int> m0;

   // Create an empty map m1 with the key comparison
   // function of less than, then insert 4 elements
   map <int, int, less<int> > m1;
   m1.insert( Int_Pair( 1, 10 ) );
   m1.insert( Int_Pair( 2, 20 ) );
   m1.insert( Int_Pair( 3, 30 ) );
   m1.insert( Int_Pair( 4, 40 ) );

   // Create an empty map m2 with the key comparison
   // function of geater than, then insert 2 elements
   map <int, int, greater<int> > m2;
   m2.insert( Int_Pair( 1, 10 ) );
   m2.insert( Int_Pair( 2, 20 ) );

   // Create a map m3 with the 
   // allocator of map m1
   map <int, int>::allocator_type m1_Alloc;
   m1_Alloc = m1.get_allocator( );
   map <int, int> m3( less<int>( ), m1_Alloc );
   m3.insert( Int_Pair( 3, 30 ) );

   // Create a copy, map m4, of map m1
   map <int, int> m4( m1 );

   // Create a map m5 by copying the range m1[_First, _Last)
   map <int, int>::const_iterator m1_bcIter, m1_ecIter;
   m1_bcIter = m1.begin( );
   m1_ecIter = m1.begin( );
   m1_ecIter++;
   m1_ecIter++;
   map <int, int> m5(m1_bcIter, m1_ecIter);

   // Create a map m6 by copying the range m4[_First, _Last)
   // and with the allocator of map m2
   map <int, int>::allocator_type m2_Alloc;
   m2_Alloc = m2.get_allocator( );
   map <int, int> m6( m4.begin( ), ++m4.begin( ), less<int>( ), m2_Alloc);

   cout << "m1 =";
   for ( m1_Iter = m1.begin( ); m1_Iter != m1.end( ); m1_Iter++ )
      cout << " " << m1_Iter -> second;
   cout << endl;
   
   cout << "m2 =";
   for ( m2_Iter = m2.begin( ); m2_Iter != m2.end( ); m2_Iter++ )
      cout << " " << m2_Iter -> second;
   cout << endl;

   cout << "m3 =";
   for ( m3_Iter = m3.begin( ); m3_Iter != m3.end( ); m3_Iter++ )
      cout << " " << m3_Iter -> second;
   cout << endl;

   cout << "m4 =";
   for ( m4_Iter = m4.begin( ); m4_Iter != m4.end( ); m4_Iter++ )
      cout << " " << m4_Iter -> second;
   cout << endl;

   cout << "m5 =";
   for ( m5_Iter = m5.begin( ); m5_Iter != m5.end( ); m5_Iter++ )
      cout << " " << m5_Iter -> second;
   cout << endl;

   cout << "m6 =";
   for ( m6_Iter = m6.begin( ); m6_Iter != m6.end( ); m6_Iter++ )
      cout << " " << m6_Iter -> second;
   cout << endl;

   // Create a map m7 by moving m5
   cout << "m7 =";
   map<int, int> m7(move(m5));
   for ( m7_Iter = m7.begin( ); m7_Iter != m7.end( ); m7_Iter++ )
      cout << " " << m7_Iter -> second;
   cout << endl;
}

Output

m1 = 10 20 30 40
m2 = 20 10
m3 = 30
m4 = 10 20 30 40
m5 = 10 20
m6 = 10
m7 = 10 20

Anforderungen

Header: <map>

Namespace: std

Siehe auch

Referenz

map Class

Standardvorlagenbibliothek