次の方法で共有


map::map

空か、他のマップの全体または一部のコピーであるマップを構築します。

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

パラメーター

パラメーター

説明

_Al

Allocatorに既定では、このマップ オブジェクトに使用するストレージのアロケーター クラス。

_Comp

hash_compareに既定では、マップ要素の並べ替えに使用される型 [const]Traits の比較関数。

_Right

構築されたセットがコピーであることなマップ。

_First

コピーする要素範囲内の先頭の要素の位置。

_Last

コピーする要素範囲を超える最初の要素の位置。

解説

すべてのコンストラクターは、マップのメモリの記憶域を管理する get_allocatorを呼び出して後で、アロケーター オブジェクトの種類を格納します。アロケーターのパラメーターは、代替アロケーターを置き換えるために使用されるクラスの宣言とプリプロセッサ マクロに切り捨てられます。

すべてのコンストラクターは、マップを初期化します。

すべてのコンストラクターは、マップのキー順間の順序を確立するために使用される key_compを呼び出して後で、型の特徴の関数オブジェクトを格納します。

明示的に使用されるアロケーターの型 (_Al) を指定する最初の 3 のコンストラクターは、空の初期マップを指定し、2 番目の要素と番目の順序の確立に使用する比較関数 (_Comp) の型を指定します。Word explicit キーは、特定の種類の自動型変換を抑制します。

4 つ目のコンストラクターは、マップ _Rightのコピーを指定します。

次の 3 種類のコンストラクターは、アロケーター クラス Traits との比較関数の型の指定を大きくする explicitness マップの範囲 [_First、_Last) をコピーします。

最後のコンストラクターは、を移動 _Rightのマップのコピーを指定します。

使用例

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

出力

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

必要条件

ヘッダー: <map>

名前空間: std

参照

関連項目

map Class

標準テンプレート ライブラリ