Неупорядоченная карта — словарь, как структура данных. Это последовательность пары (ключ, значение), где только одно значение связано с каждым уникальным ключом. Это часто упоминается как ассоциативный массив . Это позволяет быстро найти отдельные элементы на основе их ключей. Он также реализует оператор прямого доступа (оператор нижнего индекса []), который обеспечивает прямой доступ к отображенному значению, используя его значение ключа в качестве аргумента.
Неупорядоченная карта не сортирует свой элемент в каком-либо конкретном порядке по отношению к их ключу или отображенным значениям, вместо этого организуется в сегменты в зависимости от их значений хеш-функции, чтобы обеспечить быстрый доступ к отдельным элементам непосредственно по их значениям ключа.
Неупорядоченная карта работает лучше, чем карта при доступе к отдельным элементам по их ключам. Но для диапазона итераций их производительность значительно ниже.
Определение
Ниже приведено определение 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 с другим.