multimap::multimap
Zkonstruuje objekt multimap, který je prázdný, nebo který je kopií celého nebo části některého jiného objektu multimap.
multimap( );
explicit multimap(
const Traits& Comp
);
multimap(
const Traits& Comp,
const Allocator& Al
);
map(
const multimap& Right
);
multimap(
multimap&& Right
);
multimap(
initializer_list<value_type> IList
);
multimap(
initializer_list<value_type> IList,
const Compare& Comp
);
multimap(
initializer_list<value_type> IList,
const Compare& Comp,
const Allocator& Al
);
template<class InputIterator>
multimap(
InputIterator First,
InputIterator Last
);
template<class InputIterator>
multimap(
InputIterator First,
InputIterator Last,
const Traits& Comp
);
template<class InputIterator>
multimap(
InputIterator First,
InputIterator Last,
const Traits& Comp,
const Allocator& Al
);
Parametry
Parametr |
Popis |
Al |
Třída úložiště alokátoru pro použití s tímto objektem multimap, kterou je standardně třída Allocator. |
Comp |
Funkce porovnání typu constTraits použitá k seřazení prvků v objektu map, která má výchozí typ Traits. |
Right |
Objekt map, ze kterého je kopií vytvořen objekt set. |
First |
Pozice prvního prvku v rozsahu prvků, které se mají zkopírovat. |
Last |
Pozice prvního prvku mimo rozsah prvků, které se mají zkopírovat. |
IList |
initializer_list, ze kterého chcete kopírovat prvky. |
Poznámky
Všechny konstruktory ukládají typ objektu allocator, který spravuje úložiště paměti objektu multimap, a který lze později vrátit voláním funkce get_allocator.Parametr allocator je často v deklaraci třídy vynechán a makra předzpracování jsou použita k nahrazení alternativních alokátorů.
Všechny konstruktory inicializují jejich objekt multimap.
Všechny konstruktory ukládají objekt funkce typu Traits, který slouží k vytvoření pořadí mezi klíči objektu multimap, a který lze později vrátit voláním funkce key_comp.
První tři konstruktory určují prázdný počáteční objekt multimap, druhý určuje typ funkce porovnání (Comp) použité při stanovení pořadí prvků a třetí explicitně určuje typ alokátoru (Al), který se má použít.Klíčové slovo explicit potlačí některé druhy automatického převodu typu.
Čtvrtý konstruktor určuje kopii parametru Right objektu multimap.
Pátý konstruktor určuje kopii objektu multimap přesunutím parametru Right.
Šestý, sedmý a osmý konstruktor kopíruje členy initializer_list.
Následující tři konstruktory kopírují rozsah [First, Last) objektu map se zvyšující se explicitností v určování typu funkce porovnání třídy Traits a alokátoru.
Příklad
// multimap_ctor.cpp
// compile with: /EHsc
#include <map>
#include <iostream>
int main()
{
using namespace std;
typedef pair <int, int> Int_Pair;
// Create an empty multimap m0 of key type integer
multimap <int, int> m0;
// Create an empty multimap m1 with the key comparison
// function of less than, then insert 4 elements
multimap <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 multimap m2 with the key comparison
// function of geater than, then insert 2 elements
multimap <int, int, less<int> > m2;
m2.insert(Int_Pair(1, 10));
m2.insert(Int_Pair(2, 20));
// Create a multimap m3 with the
// allocator of multimap m1
multimap <int, int>::allocator_type m1_Alloc;
m1_Alloc = m1.get_allocator();
multimap <int, int> m3(less<int>(), m1_Alloc);
m3.insert(Int_Pair(3, 30));
// Create a copy, multimap m4, of multimap m1
multimap <int, int> m4(m1);
// Create a multimap m5 by copying the range m1[_First, _Last)
multimap <int, int>::const_iterator m1_bcIter, m1_ecIter;
m1_bcIter = m1.begin();
m1_ecIter = m1.begin();
m1_ecIter++;
m1_ecIter++;
multimap <int, int> m5(m1_bcIter, m1_ecIter);
// Create a multimap m6 by copying the range m4[_First, _Last)
// and with the allocator of multimap m2
multimap <int, int>::allocator_type m2_Alloc;
m2_Alloc = m2.get_allocator();
multimap <int, int> m6(m4.begin(), ++m4.begin(), less<int>(), m2_Alloc);
cout << "m1 =";
for (auto i : m1)
cout << i.first << " " << i.second << ", ";
cout << endl;
cout << "m2 =";
for (auto i : m2)
cout << i.first << " " << i.second << ", ";
cout << endl;
cout << "m3 =";
for (auto i : m3)
cout << i.first << " " << i.second << ", ";
cout << endl;
cout << "m4 =";
for (auto i : m4)
cout << i.first << " " << i.second << ", ";
cout << endl;
cout << "m5 =";
for (auto i : m5)
cout << i.first << " " << i.second << ", ";
cout << endl;
cout << "m6 =";
for (auto i : m6)
cout << i.first << " " << i.second << ", ";
cout << endl;
// Create a multimap m8 by copying in an initializer_list
multimap<int, int> m8{ { { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 } } };
cout << "m8: = ";
for (auto i : m8)
cout << i.first << " " << i.second << ", ";
cout << endl;
// Create a multimap m9 with an initializer_list and a comparator
multimap<int, int> m9({ { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 } }, less<int>());
cout << "m9: = ";
for (auto i : m9)
cout << i.first << " " << i.second << ", ";
cout << endl;
// Create a multimap m10 with an initializer_list, a comparator, and an allocator
multimap<int, int> m10({ { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 } }, less<int>(), m9.get_allocator());
cout << "m10: = ";
for (auto i : m10)
cout << i.first << " " << i.second << ", ";
cout << endl;
}
Výsledek
Požadavky
Hlavička: <map>
Obor názvů: std