Учебники

Библиотека C ++ —

Неупорядоченная карта — словарь, как структура данных. Это последовательность пары (ключ, значение), где только одно значение связано с каждым уникальным ключом. Это часто упоминается как ассоциативный массив . Это позволяет быстро найти отдельные элементы на основе их ключей. Он также реализует оператор прямого доступа (оператор нижнего индекса []), который обеспечивает прямой доступ к отображенному значению, используя его значение ключа в качестве аргумента.

Неупорядоченная карта не сортирует свой элемент в каком-либо конкретном порядке по отношению к их ключу или отображенным значениям, вместо этого организуется в сегменты в зависимости от их значений хеш-функции, чтобы обеспечить быстрый доступ к отдельным элементам непосредственно по их значениям ключа.

Неупорядоченная карта работает лучше, чем карта при доступе к отдельным элементам по их ключам. Но для диапазона итераций их производительность значительно ниже.

Определение

Ниже приведено определение 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 с другим.