Aracılığıyla paylaş


map::map

Boş veya tüm kopyalama veya başka bir harita bir parçası olan bir eşleme oluşturur.

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
);

Parametreler

Parametre

Description

_Al

Varsayılan olarak bu harita nesnesi için kullanılmak üzere depolama ayırıcısı sınıfı ayırıcı.

_Comp

Karşılaştırma işlevi türü constnitelikler varsayılan olarak Haritası içindeki öğeleri sipariş etmek için kullanılan hash_compare.

_Right

Oluşturulmuş kümesi bir kopya olacak şekilde olduğu haritası.

_First

Kopyalanacak öğeleri aralıktaki ilk öğe konumu.

_Last

Kopyalanacak öğeleri aralık dışına ilk öğenin konumu.

Notlar

Tüm Kurucular, eşleme için bellek depolama yönetir ve, daha sonra döndürülmesi çağırarak ayırıcısı nesnesi türü depolamak get_allocator. Ayırıcı parametresi, sınıf bildirimleri ve alternatif ayırıcılarına yerine koymak için kullanılan önişleme makrolar çoğunlukla atlanır.

Bütün bunların harita başlatılamıyor.

Bütün işlevi nesne türünün haritası anahtarlar arasında bir sipariş oluşturmak için kullanılır ve, daha sonra döndürülmesi çağırarak nitelikler saklamak key_comp.

İlk üç Kurucular belirtmek boş ilk haritası, ikincisi karşılaştırma işlev türünü belirleyen (_Comp) öğelerini ve üçüncü sırası oluşturma işleminde kullanılacak ayırıcı açıkça belirterek yazın (_Al) kullanılacak. Anahtar sözcük açık belirli türde otomatik tür dönüştürmesi bastırır.

Dördüncü yapıcı haritanın bir kopyasını belirtir _Right.

Sonraki üç Kurucular aralığı kopyalayın [_First, _Last) explicitness sınıfının karşılaştırma işlev türünü belirleyen içinde artan bir eşleme nitelikler ve ayırıcısı.

Son kurucu taşıyarak haritanın bir kopyasını belirtir _Right.

Örnek

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

Çıktı

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

Gereksinimler

Başlık: <map>

Namespace: std

Ayrıca bkz.

Başvuru

map Class

Standart Şablon Kütüphanesi