Неупорядоченная карта — словарь, как структура данных. Это последовательность пары (ключ, значение), где только одно значение связано с каждым уникальным ключом. Это часто упоминается как ассоциативный массив . Это позволяет быстро найти отдельные элементы на основе их ключей. Он также реализует оператор прямого доступа (оператор нижнего индекса []), который обеспечивает прямой доступ к отображенному значению, используя его значение ключа в качестве аргумента.
Неупорядоченная карта не сортирует свой элемент в каком-либо конкретном порядке по отношению к их ключу или отображенным значениям, вместо этого организуется в сегменты в зависимости от их значений хеш-функции, чтобы обеспечить быстрый доступ к отдельным элементам непосредственно по их значениям ключа.
Неупорядоченная карта работает лучше, чем карта при доступе к отдельным элементам по их ключам. Но для диапазона итераций их производительность значительно ниже.
Определение
Ниже приведено определение 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;
параметры
-
Ключ — тип ключа.
-
T — Тип сопоставленных значений.
-
Hash — тип объекта с унарной функцией, который принимает объект типа ключ типа в качестве аргумента и возвращает уникальное значение типа size_t на его основе.
-
Pred — двоичный предикат, который содержит два аргумента типа ключа и возвращает bool.
-
Alloc — Тип объекта-распределителя.
T может быть заменен любым другим типом данных, включая определенный пользователем тип.
Ключ — тип ключа.
T — Тип сопоставленных значений.
Hash — тип объекта с унарной функцией, который принимает объект типа ключ типа в качестве аргумента и возвращает уникальное значение типа size_t на его основе.
Pred — двоичный предикат, который содержит два аргумента типа ключа и возвращает bool.
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 | difference_type | 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 из списка инициализации. |
Создает пустое unordered_map с нулевыми элементами.
Создает unordered_map с копией каждого элемента, присутствующего в существующем unordered_map.
Создает unordered_map с содержимым другого, используя семантику перемещения.
Создает unordered_map с таким количеством элементов, как в диапазоне от первого до последнего .
Создает unordered_map из списка инициализации.
Destructor
| Sr.No. | Метод и описание |
|---|---|
| 1 | unordered_map :: ~ unordered_map
Уничтожает объект unordered_map, освобождая его память. |
Уничтожает объект unordered_map, освобождая его память.
Функции-члены
| Sr.No. | Метод и описание |
|---|---|
| 1 | unordered_map :: на
Возвращает ссылку на сопоставленное значение, связанное с ключом k . |
| 2 | unordered_map :: begin итератор контейнера
Возвращает итератор, который ссылается на первый элемент карты. |
| 3 | unordered_map :: begin bucket iterator
Возвращает итератор, указывающий на первый элемент в одном из его сегментов. |
| 4 | unordered_map :: ведро
Возвращает номер сегмента, в котором находится элемент с ключом k . |
| 5 | unordered_map :: bucket_count
Возвращает количество сегментов в контейнере unordered_map. |
| 6 | unordered_map :: bucket_size
Возвращает количество элементов, представленных в n- ом сегменте. |
| 7 | unordered_map :: cbegin контейнерный итератор
Возвращает постоянный итератор, который ссылается на первый элемент unordered_map. |
| 8 | unordered_map :: cbegin bucket iterator
Возвращает постоянный итератор, указывающий на первый элемент в одном из его сегментов. |
| 9 | unordered_map :: cend контейнерный итератор
Возвращает постоянный итератор, который указывает на последний элемент unordered_map. |
| 10 | unordered_map :: cend bucket iterator
Возвращает постоянный итератор, который указывает на элемент « конец конца» в одном из его сегментов. |
| 11 | unordered_map :: ясно
Уничтожает unordered_map, удаляя все элементы, и устанавливает размер unordered_map равным нулю . |
| 12 | unordered_map :: Количество
Возвращает количество сопоставленных значений, связанных с ключом k . |
| 13 | unordered_map :: устанавливать
Расширяет контейнер, вставляя новый элемент. |
| 14 | unordered_map :: emplace_hint
Вставляет новый элемент в unordered_map, используя подсказку в качестве позиции для элемента. |
| 15 | unordered_map :: пусто
Проверяет, является ли unordered_map пустым или нет. |
| 16 | unordered_map :: end итератор контейнера
Возвращает итератор, который указывает на последний элемент в unordered_map. |
| 17 | unordered_map :: end bucket iterator
Возвращает итератор, который указывает на последний элемент в одном из его сегментов. |
| 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 :: вставка
Расширяет контейнер, вставляя новый элемент в unordered_map. |
| 26 | unordered_map :: вставить версию перемещения
Расширяет контейнер, вставляя новый элемент в unordered_map. |
| 27 | unordered_map :: вставить версию подсказки
Расширяет контакт, вставляя новый элемент в unordered_map. |
| 28 | unordered_map :: insert move and hint version
Расширяет unordered_map, вставляя новый элемент. |
| 29 | unordered_map :: вставить версию диапазона
Расширяет контейнер, вставляя новые элементы в unordered_map. |
| 30 | unordered_map :: insert initializer_list version
Расширяет карту, вставляя новый элемент из списка инициализатора. |
| 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 version
Скопируйте элементы из списка инициализатора в unordered_map. |
| 40 | unordered_map :: Оператор []
Если ключ k соответствует элементу в контейнере, метод возвращает ссылку на элемент. |
| 41 | unordered_map :: operator [] переместить версию
Если ключ k соответствует элементу в контейнере, метод возвращает ссылку на элемент. |
| 42 | unordered_map :: перепев
Устанавливает количество контейнеров в контейнере равным n или более. |
| 43 | unordered_map :: резерв
Устанавливает количество контейнеров в контейнере как наиболее подходящее, чтобы содержать не менее n элементов. |
| 44 | unordered_map :: размер
Возвращает количество элементов, присутствующих в unordered_map. |
| 45 | unordered_map :: своп
Обменивается содержимым первого unordered_map с другим. |
Возвращает ссылку на сопоставленное значение, связанное с ключом k .
Возвращает итератор, который ссылается на первый элемент карты.
Возвращает итератор, указывающий на первый элемент в одном из его сегментов.
Возвращает номер сегмента, в котором находится элемент с ключом k .
Возвращает количество сегментов в контейнере unordered_map.
Возвращает количество элементов, представленных в n- ом сегменте.
Возвращает постоянный итератор, который ссылается на первый элемент unordered_map.
Возвращает постоянный итератор, указывающий на первый элемент в одном из его сегментов.
Возвращает постоянный итератор, который указывает на последний элемент unordered_map.
Возвращает постоянный итератор, который указывает на элемент « конец конца» в одном из его сегментов.
Уничтожает unordered_map, удаляя все элементы, и устанавливает размер unordered_map равным нулю .
Возвращает количество сопоставленных значений, связанных с ключом k .
Расширяет контейнер, вставляя новый элемент.
Вставляет новый элемент в unordered_map, используя подсказку в качестве позиции для элемента.
Проверяет, является ли unordered_map пустым или нет.
Возвращает итератор, который указывает на последний элемент в unordered_map.
Возвращает итератор, который указывает на последний элемент в одном из его сегментов.
Возвращает диапазон элементов, который соответствует определенному ключу.
Удаляет один элемент unordered_map из позиции .
Удаляет сопоставленное значение, связанное с ключом k .
Удаляет диапазон элемента из unordered_map.
Находит элемент, связанный с ключом k .
Возвращает распределитель, связанный с unordered_map.
Вычисляет объект хеш-функции, используемый контейнером unordered_map.
Расширяет контейнер, вставляя новый элемент в unordered_map.
Расширяет контейнер, вставляя новый элемент в unordered_map.
Расширяет контакт, вставляя новый элемент в unordered_map.
Расширяет unordered_map, вставляя новый элемент.
Расширяет контейнер, вставляя новые элементы в unordered_map.
Расширяет карту, вставляя новый элемент из списка инициализатора.
Возвращает функцию, которая сравнивает ключи на равенство.
Возвращает текущий коэффициент загрузки контейнера unordered_map.
Возвращает максимальное количество сегментов, которое может иметь контейнер unordered_map.
Возвращает текущий максимальный коэффициент загрузки для контейнера unordered_map.
Назначает новый коэффициент загрузки для контейнера unordered_map.
Возвращает максимальное количество элементов, которое может храниться в unordered_map.
Присваивает новое содержимое unordered_map, заменяя старое, и при необходимости изменяет размер.
Переместите содержимое одного unordered_map в другое и при необходимости измените размер.
Скопируйте элементы из списка инициализатора в unordered_map.
Если ключ k соответствует элементу в контейнере, метод возвращает ссылку на элемент.
Если ключ k соответствует элементу в контейнере, метод возвращает ссылку на элемент.
Устанавливает количество контейнеров в контейнере равным n или более.
Устанавливает количество контейнеров в контейнере как наиболее подходящее, чтобы содержать не менее n элементов.
Возвращает количество элементов, присутствующих в unordered_map.
Обменивается содержимым первого unordered_map с другим.
Не член перегруженные функции
| Sr.No. | Метод и описание |
|---|---|
| 1 | unordered_map :: оператор ==
Проверяет, равны ли два unordered_maps или нет. |
| 2 | unordered_map :: оператор! =
Проверяет, равны ли два unordered_maps или нет. |
| 3 | unordered_map :: своп
Обменивается содержимым первого unordered_map с другим. |
Проверяет, равны ли два unordered_maps или нет.
Проверяет, равны ли два unordered_maps или нет.
Обменивается содержимым первого 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;
параметры
-
Ключ — тип ключа.
-
T — Тип сопоставленных значений.
-
Hash — тип объекта с унарной функцией, который принимает объект типа ключ типа в качестве аргумента и возвращает уникальное значение типа size_t на его основе.
-
Pred — двоичный предикат, который содержит два аргумента типа ключа и возвращает bool.
-
Alloc — Тип объекта-распределителя.
T может быть заменен любым другим типом данных, включая определенный пользователем тип.
Ключ — тип ключа.
T — Тип сопоставленных значений.
Hash — тип объекта с унарной функцией, который принимает объект типа ключ типа в качестве аргумента и возвращает уникальное значение типа size_t на его основе.
Pred — двоичный предикат, который содержит два аргумента типа ключа и возвращает bool.
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 | difference_type | ptrdiff_t |
| 16 | size_type | size_t |
Функции из <unordered_multimap>
Ниже приведен список всех методов из заголовка <unordered_map>.
Создает пустое unordered_multimap с нулевыми элементами.
Создает unordered_multimap с копией каждого элемента, присутствующего в существующем unordered_multimap.
Создает unordered_multimap с содержимым другого, используя семантику перемещения.
Создает unordered_multimap с таким количеством элементов, как в диапазоне от первого до последнего .
Создает unordered_multimap из списка инициализации.
Уничтожает объект unordered_multimap, освобождая его память.
Возвращает итератор, который ссылается на первый элемент unordered_mulitmap.
Возвращает итератор, указывающий на первый элемент в одном из его сегментов.
Возвращает номер сегмента, в котором находится элемент с ключом k .
Возвращает количество сегментов, присутствующих в контейнере unordered_multimap.
Возвращает количество элементов, представленных в n- ом сегменте.
Возвращает постоянный итератор, который ссылается на первый элемент unordered_multimap.
Возвращает постоянный итератор, указывающий на первый элемент в одном из его сегментов.
Возвращает постоянный итератор, который указывает на последний элемент unordered_multimap.
Возвращает постоянный итератор, который указывает на элемент « конец конца» в одном из его сегментов.
Уничтожает unordered_multimap путем удаления всех элементов и устанавливает размер unordered_multimap равным нулю .
Возвращает количество сопоставленных значений, связанных с ключом k .
Расширяет контейнер, вставляя новый элемент.
Вставляет новый элемент в unordered_multimap, используя подсказку в качестве позиции для элемента.
Проверяет, является ли unordered_multimap пустым или нет.
Возвращает итератор, который указывает на последний элемент в unordered_multimap.
Возвращает итератор, который указывает на последний элемент в одном из его сегментов.
Возвращает диапазон элементов, который соответствует определенному ключу.
Удаляет один элемент unordered_multimap из позиции .
Удаляет сопоставленное значение, связанное с ключом k .
Удаляет диапазон элемента из unordered_multimap.
Находит элемент, связанный с ключом k .
Возвращает распределитель, связанный с unordered_multimap.
Вычисляет объект хеш-функции, используемый контейнером unordered_multimap.
Расширяет контейнер, вставляя новый элемент в unordered_multimap.
Расширяет unordered_multimap, вставляя новый элемент.
Расширяет контейнер, вставляя новый элемент в unordered_multimap.
Расширяет контейнер, вставляя новый элемент в unordered_multimap, используя семантику перемещения.
Расширяет контейнер, вставляя новые элементы в unordered_multimap.
Расширяет unordered_multimap, вставляя новый элемент из списка инициализатора.
Возвращает функцию, которая сравнивает ключи на равенство.
Возвращает текущий коэффициент загрузки контейнера unordered_multimap.
Возвращает максимальное количество сегментов, которое может иметь контейнер unordered_multimap.
Возвращает текущий максимальный коэффициент загрузки для контейнера unordered_multimap.
Назначает новый коэффициент загрузки для контейнера unordered_multimap.
Возвращает максимальное количество элементов, которое может храниться в unordered_multimap.
Присваивает новое содержимое unordered_multimap, заменяя старые и изменяя размер при необходимости.
Переместите содержимое одного unordered_multimap в другое и при необходимости измените размер.
Скопируйте элементы из списка инициализатора в unordered_multimap.
Устанавливает количество контейнеров в контейнере равным n или более.
Устанавливает количество контейнеров в контейнере как наиболее подходящее, чтобы содержать не менее n элементов.
Возвращает количество элементов, присутствующих в unordered_multimap.
Обменивается содержимым первого unordered_multimap с другим.
Проверяет, равны ли два unordered_multimaps или нет.
Проверяет, равны ли два unordered_multimaps или нет.
Обменивается содержимым первого unordered_multimap с другим.