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