Библиотека C ++ - <unordered_map>
Введение в unordered_map
Неупорядоченная карта - это словарная структура данных. Это последовательность пары (ключ, значение), где с каждым уникальным ключом связано только одно значение. Его часто называют ассоциативным массивом . Это позволяет быстро находить отдельные элементы на основе их ключей. Он также реализует оператор прямого доступа (оператор индекса []), который обеспечивает прямой доступ к отображаемому значению, используя его значение ключа в качестве аргумента.
Неупорядоченная карта не сортирует свой элемент в каком-либо определенном порядке относительно их ключей или сопоставленных значений, вместо этого организует их в сегменты в зависимости от их хеш-значений, чтобы обеспечить быстрый доступ к отдельным элементам напрямую по их значениям ключей.
Неупорядоченная карта работает лучше, чем карта, при доступе к отдельным элементам по их ключам. Но для итерации диапазона их производительность значительно ниже.
Определение
Ниже приведено определение std :: unordered_map из заголовочного файла <unordered_map>.
template < class Key,
class T,
class Hash = hash<Key>,
class Pred = equal_to<Key>,
class Alloc = allocator< pair<const Key,T> >
> class unordered_map;
Параметры
Key - Тип ключа.
T - Тип отображаемых значений.
Hash- Тип унарного функционального объекта, который принимает в качестве аргумента объект типа ключа и возвращает на его основе уникальное значение типа size_t .
Pred- Бинарный предикат, который имеет два аргумента ключевого типа и возвращает логическое значение.
Alloc - Тип объекта распределителя.
T может быть заменен любым другим типом данных, включая тип, определенный пользователем.
Типы участников
Следующие типы членов могут использоваться как параметры или возвращаемый тип функциями-членами.
Sr.No. | Типы участников | Определение |
---|---|---|
1 | key_type | Ключ (первый параметр шаблона) |
2 | mapped_type | T (Второй параметр шаблона) |
3 | тип ценности | пара <const key_type, mapped_type> |
4 | хешер | Третий параметр шаблона (по умолчанию: hash <key_type>) |
5 | key_equal | Четвертый параметр шаблона (по умолчанию: equal_to <key_type>) |
6 | allocator_type | Alloc (Пятый параметр шаблона) |
7 | Справка | тип ценности& |
8 | const_reference | const value_type & |
9 | указатель | allocator_traits <Alloc> :: указатель |
10 | const_pointer | allocator_traits <Alloc> :: const_pointer |
11 | итератор | Прямой итератор для value_type value_type |
12 | const_iterator | Прямой итератор для const value_type value_type |
13 | local_iterator | Прямой итератор для value_type |
14 | const_local_iterator | Прямой итератор для const value_type |
15 | разница_тип | ptrdiff_t |
16 | size_type | size_t |
Функции из <unordered_map>
Ниже приведен список всех методов из заголовка <unordered_map>.
Конструкторы
Sr.No. | Метод и описание |
---|---|
1 | unordered_map :: unordered_map конструктор по умолчанию Создает пустой unordered_map с нулевыми элементами. |
2 | unordered_map :: unordered_map конструктор копирования Создает unordered_map с копией каждого элемента, присутствующего в существующем unordered_map. |
3 | unordered_map :: unordered_map конструктор перемещения Создает unordered_map с содержимым другого, используя семантику перемещения. |
4 | unordered_map :: unordered_map конструктор диапазона Создает unordered_map с таким количеством элементов, как в диапазоне от первого до последнего . |
5 | unordered_map :: unordered_map конструктор initializer_list Создает unordered_map из списка инициализации. |
Деструктор
Sr.No. | Метод и описание |
---|---|
1 | unordered_map :: ~ unordered_map Уничтожает объект unordered_map, освобождая его память. |
Функции-члены
Sr.No. | Метод и описание |
---|---|
1 | unordered_map :: at Возвращает ссылку на сопоставленное значение, связанное с ключом k . |
2 | unordered_map :: begin итератор контейнера Возвращает итератор, который ссылается на первый элемент карты. |
3 | unordered_map :: begin итератор сегмента Возвращает итератор, указывающий на первый элемент в одной из его корзин. |
4 | unordered_map :: bucket Возвращает номер сегмента, в котором находится элемент с ключом k . |
5 | unordered_map :: bucket_count Возвращает количество сегментов в контейнере unordered_map. |
6 | unordered_map :: bucket_size Возвращает количество элементов в n- м блоке. |
7 | unordered_map :: итератор контейнера cbegin Возвращает постоянный итератор, который ссылается на первый элемент unordered_map. |
8 | unordered_map :: итератор ведра cbegin Возвращает постоянный итератор, указывающий на первый элемент в одном из его сегментов. |
9 | unordered_map :: итератор контейнера cend Возвращает постоянный итератор, который указывает на последний элемент unordered_map. |
10 | unordered_map :: cend итератор ведра Возвращает постоянный итератор, который указывает на последний элемент в одном из своих сегментов. |
11 | unordered_map :: clear Уничтожает unordered_map, удаляя все элементы, и устанавливает размер unordered_map равным нулю . |
12 | unordered_map :: count Возвращает количество сопоставленных значений, связанных с ключом k . |
13 | unordered_map :: emplace Расширяет контейнер, вставляя новый элемент. |
14 | unordered_map :: emplace_hint Вставляет новый элемент в unordered_map, используя подсказку в качестве позиции для элемента. |
15 | unordered_map :: empty Проверяет, является ли unordered_map пустым или нет. |
16 | unordered_map :: end итератор контейнера Возвращает итератор, который указывает на последний элемент в unordered_map. |
17 | unordered_map :: итератор конца сегмента Возвращает итератор, который указывает на последний элемент в одном из его сегментов. |
18 | unordered_map :: равный Возвращает диапазон элементов, соответствующих определенному ключу. |
19 | unordered_map :: стереть версию позиции Удаляет один элемент unordered_map из позиции . |
20 | unordered_map :: версия ключа стирания Удаляет сопоставленное значение, связанное с ключом k . |
21 год | unordered_map :: стереть версию диапазона Удаляет диапазон элемента из unordered_map. |
22 | unordered_map :: найти Находит элемент, связанный с ключом k . |
23 | unordered_map :: get_allocator Возвращает распределитель, связанный с unordered_map. |
24 | unordered_map :: hash_function Вычисляет объект хэш-функции, используемый контейнером unordered_map. |
25 | unordered_map :: insert Расширяет контейнер, вставляя новый элемент в unordered_map. |
26 | unordered_map :: вставить версию перемещения Расширяет контейнер, вставляя новый элемент в unordered_map. |
27 | unordered_map :: вставить версию подсказки Расширяет контент, вставляя новый элемент в unordered_map. |
28 | unordered_map :: вставить ход и версию подсказки Расширяет unordered_map, вставляя новый элемент. |
29 | unordered_map :: вставить версию диапазона Расширяет контейнер, вставляя новые элементы в unordered_map. |
30 | unordered_map :: вставить версию initializer_list Расширяет карту, вставляя новый элемент из списка инициализаторов. |
31 год | unordered_map :: key_eq Возвращает функцию, которая сравнивает ключи на равенство. |
32 | unordered_map :: load_factor Возвращает текущий коэффициент загрузки контейнера unordered_map. |
33 | unordered_map :: max_bucket_count Возвращает максимальное количество сегментов, которое может иметь контейнер unordered_map. |
34 | unordered_map :: max_load_factor получить версию Возвращает текущий максимальный коэффициент загрузки для контейнера unordered_map. |
35 год | unordered_map :: max_load_factor установить версию Назначает новый коэффициент загрузки для контейнера unordered_map. |
36 | unordered_map :: max_size Возвращает максимальное количество элементов, которое может содержать unordered_map. |
37 | unordered_map :: operator = скопировать версию Назначает новое содержимое unordered_map, заменяя старое, и при необходимости изменяет размер. |
38 | unordered_map :: operator = переместить версию Переместите содержимое одной unordered_map в другую и при необходимости измените размер. |
39 | unordered_map :: operator = initializer_list версия Скопируйте элементы из списка инициализаторов в unordered_map. |
40 | unordered_map :: operator [] Если ключ k соответствует элементу в контейнере, метод возвращает ссылку на элемент. |
41 год | unordered_map :: operator [] переместить версию Если ключ k соответствует элементу в контейнере, метод возвращает ссылку на элемент. |
42 | unordered_map :: rehash Устанавливает количество ведер в контейнере равным n или более. |
43 год | unordered_map :: резерв Устанавливает количество сегментов в контейнере как наиболее подходящее, чтобы содержать не менее n элементов. |
44 | unordered_map :: size Возвращает количество элементов, присутствующих в unordered_map. |
45 | unordered_map :: swap Меняет содержимое первого unordered_map на другое. |
Перегруженные функции, не являющиеся членами
Sr.No. | Метод и описание |
---|---|
1 | unordered_map :: operator == Проверяет, равны ли два unordered_maps. |
2 | unordered_map :: оператор! = Проверяет, равны ли два unordered_maps. |
3 | unordered_map :: swap Меняет содержимое первого unordered_map на другое. |
Введение в unordered_multimap
Unordered_multimap - это словарная структура данных. Это последовательность пары (ключ, значение), где разные элементы могут иметь эквивалентные ключи. Элементы с эквивалентными ключами сгруппированы вместе в одном сегменте и таким образом, что итератор equal_range может перебирать их все.
Unordered_multimap не сортирует свой элемент в каком-либо определенном порядке относительно их ключевых или сопоставленных значений, вместо этого организует сегменты в зависимости от их хэш-значений, чтобы обеспечить быстрый доступ к отдельным элементам напрямую по их значениям ключей.
Определение
Ниже приведено определение std :: unordered_multimap из заголовочного файла <unordered_map>.
template < class Key,
class T,
class Hash = hash<Key>,
class Pred = equal_to<Key>,
class Alloc = allocator< pair<const Key,T> >
> class unordered_multimap;
Параметры
Key - Тип ключа.
T - Тип отображаемых значений.
Hash- Тип унарного функционального объекта, который принимает в качестве аргумента объект типа ключа и возвращает на его основе уникальное значение типа size_t .
Pred- Бинарный предикат, который имеет два аргумента ключевого типа и возвращает логическое значение.
Alloc - Тип объекта распределителя.
T может быть заменен любым другим типом данных, включая тип, определенный пользователем.
Типы участников
Следующие типы членов могут использоваться как параметры или возвращаемый тип функциями-членами.
Sr.No. | Типы участников | Определение |
---|---|---|
1 | key_type | Ключ (первый параметр шаблона) |
2 | mapped_type | T (Второй параметр шаблона) |
3 | тип ценности | пара <const key_type, mapped_type> |
4 | хешер | Третий параметр шаблона (по умолчанию: hash <key_type>) |
5 | key_equal | Четвертый параметр шаблона (по умолчанию: equal_to <key_type>) |
6 | allocator_type | Alloc (Пятый параметр шаблона) |
7 | Справка | тип ценности& |
8 | const_reference | const value_type & |
9 | указатель | allocator_traits <Alloc> :: указатель |
10 | const_pointer | allocator_traits <Alloc> :: const_pointer |
11 | итератор | Прямой итератор для value_type value_type |
12 | const_iterator | Прямой итератор для const value_type value_type |
13 | local_iterator | Прямой итератор для value_type |
14 | const_local_iterator | Прямой итератор для const value_type |
15 | разница_тип | ptrdiff_t |
16 | size_type | size_t |
Функции из <unordered_multimap>
Ниже приведен список всех методов из заголовка <unordered_map>.
Конструкторы
Sr.No. | Метод и описание |
---|---|
1 | unordered_multimap :: unordered_multimap () конструктор по умолчанию Создает пустой unordered_multimap с нулевыми элементами. |
2 | unordered_multimap :: unordered_multimap () конструктор копирования Создает unordered_multimap с копией каждого элемента, присутствующего в существующем unordered_multimap. |
3 | unordered_multimap :: unordered_multimap () конструктор перемещения Создает unordered_multimap с содержимым other, используя семантику перемещения. |
4 | unordered_multimap :: unordered_multimap () конструктор диапазона Создает unordered_multimap с таким количеством элементов, как в диапазоне от первого до последнего . |
5 | unordered_multimap :: unordered_multimap () конструктор initializer_list Создает unordered_multimap из списка инициализации. |
Деструктор
Sr.No. | Метод и описание |
---|---|
1 | unordered_multimap :: ~ unordered_multimap () Уничтожает объект unordered_multimap, освобождая его память. |
Функции-члены
Sr.No. | Метод и описание |
---|---|
1 | unordered_multimap :: begin () контейнерный итератор Возвращает итератор, который ссылается на первый элемент unordered_mulitmap. |
2 | unordered_multimap :: begin () итератор ведра Возвращает итератор, указывающий на первый элемент в одной из его корзин. |
3 | unordered_multimap :: bucket () Возвращает номер сегмента, в котором находится элемент с ключом k . |
4 | unordered_multimap :: bucket_count () Возвращает количество сегментов в контейнере unordered_multimap. |
5 | unordered_multimap :: bucket_size () Возвращает количество элементов в n- м блоке. |
6 | unordered_multimap :: cbegin () контейнерный итератор Возвращает постоянный итератор, который ссылается на первый элемент unordered_multimap. |
7 | unordered_multimap :: cbegin () итератор ведра Возвращает постоянный итератор, указывающий на первый элемент в одном из его сегментов. |
8 | unordered_multimap :: cend () контейнерный итератор Возвращает константу итератор , который указывает на пришедшего к конечному элементу unordered_multimap. |
9 | unordered_multimap :: cend () итератор ведра Возвращает постоянный итератор, который указывает на последний элемент в одном из своих сегментов. |
10 | unordered_multimap :: clear () Уничтожает unordered_multimap, удаляя все элементы, и устанавливает размер unordered_multimap равным нулю . |
11 | unordered_multimap :: count () Возвращает количество сопоставленных значений, связанных с ключом k . |
12 | unordered_multimap :: emplace () Расширяет контейнер, вставляя новый элемент. |
13 | unordered_multimap :: emplace_hint () Вставляет новый элемент в unordered_multimap, используя подсказку в качестве позиции для элемента. |
14 | unordered_multimap :: empty () Проверяет, является ли unordered_multimap пустым или нет. |
15 | unordered_multimap :: end () контейнерный итератор Возвращает итератор, который указывает на элемент за пределами конца в unordered_multimap. |
16 | unordered_multimap :: end () итератор ведра Возвращает итератор, который указывает на последний элемент в одном из его сегментов. |
17 | unordered_multimap :: equal_range () Возвращает диапазон элементов, соответствующих определенному ключу. |
18 | unordered_multimap :: erase () версия позиции Удаляет один элемент unordered_multimap из позиции . |
19 | unordered_multimap :: erase () версия ключа Удаляет сопоставленное значение, связанное с ключом k . |
20 | unordered_multimap :: erase () версия диапазона Удаляет диапазон элемента из unordered_multimap. |
21 год | unordered_multimap :: find () Находит элемент, связанный с ключом k . |
22 | unordered_multimap :: get_allocator () Возвращает распределитель, связанный с unordered_multimap. |
23 | unordered_multimap :: hash_function () Вычисляет объект хэш-функции, используемый контейнером unordered_multimap. |
24 | unordered_multimap :: insert () значение версии Расширяет контейнер, вставляя новый элемент в unordered_multimap. |
25 | unordered_multimap :: insert () переместить версию Расширяет unordered_multimap, вставляя новый элемент. |
26 | unordered_multimap :: insert () версия подсказки Расширяет контейнер, вставляя новый элемент в unordered_multimap. |
27 | unordered_multimap :: insert () версия перемещения подсказки Расширяет контейнер, вставляя новый элемент в unordered_multimap с использованием семантики перемещения. |
28 | unordered_multimap :: insert () версия диапазона Расширяет контейнер, вставляя новые элементы в unordered_multimap. |
29 | unordered_multimap :: insert () версия initializer_list Расширяет unordered_multimap, вставляя новый элемент из списка инициализаторов. |
30 | unordered_multimap :: key_eq () Возвращает функцию, которая сравнивает ключи на равенство. |
31 год | unordered_multimap :: load_factor () Возвращает текущий коэффициент загрузки контейнера unordered_multimap. |
32 | unordered_multimap :: max_bucket_count () Возвращает максимальное количество сегментов, которое может иметь контейнер unordered_multimap. |
33 | unordered_multimap :: max_load_factor () получить версию Возвращает текущий максимальный коэффициент загрузки для контейнера unordered_multimap. |
34 | unordered_multimap :: max_load_factor () установить версию Назначает новый коэффициент загрузки для контейнера unordered_multimap. |
35 год | unordered_multimap :: max_size () Возвращает максимальное количество элементов, которое может содержать unordered_multimap. |
36 | unordered_multimap :: operator = () скопировать версию Назначает новое содержимое unordered_multimap, заменяя старое, и при необходимости изменяет размер. |
37 | unordered_multimap :: operator = () переместить версию Переместите содержимое одной unordered_multimap в другую и при необходимости измените размер. |
38 | unordered_multimap :: operator = () версия initializer_list Скопируйте элементы из списка инициализаторов в unordered_multimap. |
39 | unordered_multimap :: rehash () Устанавливает количество ведер в контейнере равным n или более. |
40 | unordered_multimap :: резерв () Устанавливает количество сегментов в контейнере как наиболее подходящее, чтобы содержать не менее n элементов. |
41 год | unordered_multimap :: size () Возвращает количество элементов, присутствующих в unordered_multimap. |
42 | unordered_multimap :: swap () Меняет содержимое первой unordered_multimap на другую. |
Перегруженные функции, не являющиеся членами
Sr.No. | Метод и описание |
---|---|
1 | unordered_multimap :: operator == () Проверяет, равны ли два unordered_multimaps. |
2 | unordered_multimap :: оператор! = () Проверяет, равны ли два unordered_multimaps. |
3 | unordered_multimap :: swap () Меняет содержимое первой unordered_multimap на другую. |