multimap::multimap
Создает multimap, пусты, или скопировать все или часть другого 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
);
Параметры
Параметр |
Описание |
Al |
Класс распределителя хранилища, используемый для этого объекта multimap, устанавливается значение по умолчанию распределителю. |
Comp |
Функция сравнения типа const, Признаки, используемого для сортировки элементов в сопоставлении, устанавливается значение по умолчанию Признаки. |
Right |
Сопоставление, построенный набор быть копией. |
First |
Положение первого элемента в диапазоне элементов для копирования. |
Last |
Положение первого элемента после диапазона элементов для копирования. |
IList |
Initializer_list, из которого для копирования элементов. |
Заметки
Все конструкторы сохраняют тип объекта распределителя, который управляет хранилище памяти для multimap, и может быть возвращено с помощью метода get_allocator. Параметр распределителя часто опускается в объявлении класса и макросах предварительной обработки, чтобы заменить альтернативные распределителей.
Все конструкторы инициализируют их multimap.
Все конструкторы сохраняют объект функции типа Traits, который используется для задания порядка ключей между multimap, и может быть возвращено с помощью метода key_comp.
Первые 3 конструктора определяют начальное пустое multimap, второе задание типа функции сравнения (Comp), используемый в параметре порядок элементов и третий явно определяет тип распределителя (Al) необходимо использовать. Ключевое слово explicit подавить некоторые типы автоматического преобразования типов.
Задает четвертый конструктор копии multimap Right.
Задает пятый конструктор копии multimap перемещая Right.
Конструкторы, сексты седьмого и восьмого копируют члены initializer_list.
Следующие 3 конструктора копируют диапазон [First, Last) сопоставления с увеличением эксплицитности в определение типа функции сравнения класса Признаки и распределителя.
Пример
// 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;
}
Output
Требования
Заголовок:<map>
Пространство имен: std