Map c вывести все элементы

Содержание
  1. Класс map
  2. Синтаксис
  3. Параметры
  4. Remarks
  5. Члены
  6. Конструкторы
  7. Определения типов
  8. Функции элементов
  9. Операторы
  10. allocator_type
  11. Пример
  12. Параметры
  13. Возвращаемое значение
  14. Remarks
  15. Пример
  16. begin
  17. Возвращаемое значение
  18. Пример
  19. cbegin
  20. Возвращаемое значение
  21. Remarks
  22. Возвращаемое значение
  23. Remarks
  24. clear
  25. Пример
  26. const_iterator
  27. Remarks
  28. Пример
  29. const_pointer
  30. Remarks
  31. const_reference
  32. Пример
  33. const_reverse_iterator
  34. Remarks
  35. Пример
  36. count
  37. Параметры
  38. Возвращаемое значение
  39. Remarks
  40. Пример
  41. contains
  42. Параметры
  43. Возвращаемое значение
  44. Remarks
  45. Пример
  46. crbegin
  47. Возвращаемое значение
  48. Remarks
  49. Пример
  50. crend
  51. Возвращаемое значение
  52. Remarks
  53. Пример
  54. difference_type
  55. Remarks
  56. Пример
  57. emplace
  58. Параметры
  59. Возвращаемое значение
  60. Remarks
  61. Пример
  62. emplace_hint
  63. Параметры
  64. Возвращаемое значение
  65. Remarks
  66. Пример
  67. empty
  68. Возвращаемое значение
  69. Пример
  70. Возвращаемое значение
  71. Remarks
  72. equal_range
  73. Параметры
  74. Возвращаемое значение
  75. Пример
  76. erase
  77. Параметры
  78. Возвращаемое значение
  79. Пример
  80. Параметры
  81. Возвращаемое значение
  82. Remarks
  83. Пример
  84. get_allocator
  85. Возвращаемое значение
  86. Remarks
  87. Пример
  88. insert
  89. Параметры
  90. Возвращаемое значение
  91. Remarks
  92. Пример
  93. iterator
  94. Remarks
  95. Пример
  96. key_comp
  97. Возвращаемое значение
  98. Remarks
  99. Пример
  100. key_compare
  101. Remarks
  102. Пример
  103. key_type
  104. Remarks
  105. Пример
  106. lower_bound
  107. Параметры
  108. Возвращаемое значение
  109. Пример
  110. Параметры
  111. Remarks
  112. Пример
  113. mapped_type
  114. Remarks
  115. Пример
  116. max_size
  117. Возвращаемое значение
  118. Пример
  119. operator[]
  120. Параметры
  121. Возвращаемое значение
  122. Remarks
  123. Пример
  124. operator=
  125. Параметры
  126. Remarks
  127. Пример
  128. pointer
  129. Remarks
  130. rbegin
  131. Возвращаемое значение
  132. Remarks
  133. Пример
  134. reference
  135. Пример
  136. Возвращаемое значение
  137. Remarks
  138. Пример
  139. reverse_iterator
  140. Remarks
  141. Пример
  142. Возвращаемое значение
  143. Пример
  144. size_type
  145. Пример
  146. позиции
  147. Параметры
  148. Remarks
  149. Пример
  150. upper_bound
  151. Параметры
  152. Возвращаемое значение
  153. Пример
  154. value_comp
  155. Возвращаемое значение
  156. Remarks
  157. Пример
  158. value_type

Класс map

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

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

Читайте также:  Чем можно отстирать черную гелевую ручку с блузки

Синтаксис

Параметры

Key
Тип данных ключа, который должен храниться в map .

Type
Тип данных элемента для сохранения в map .

Traits
Тип, предоставляющий объект функции, который может сравнить два значения элементов как ключи сортировки для определения их относительного порядка в map . Этот аргумент является необязательным, и в качестве значения по умолчанию используется бинарный предикат less .

В C++ 14 можно включить разнородный Уточняющий запрос, указав std::less<> предикат, не имеющий параметров типа. Дополнительные сведения см. в разделе разнородный Уточняющий запрос в ассоциативных контейнерах .

Allocator
Тип, представляющий сохраненный объект распределителя, который инкапсулирует сведения о выделении и освобождении памяти для сопоставления. Этот аргумент является необязательным, и значением по умолчанию является allocator

Remarks

Класс map в стандартной библиотеке С++ — это:

Контейнер переменного размера, фактически извлекающий значения элементов на основе связанных значений ключей.

Реверсивный, поскольку он предоставляет двунаправленные итераторы для получения доступа к его элементам.

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

Является уникальным, поскольку каждый его элемент должен обладать уникальным ключом.

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

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

Итератор, предоставляемый классом Map, является двунаправленным итератором, insert но map функции-члены класса и имеют версии, принимающие в качестве параметров шаблона более слабый итератор ввода, чьи функциональные требования меньше, чем гарантированные классом двунаправленных итераторов. Различные концепции итераторов связаны уточнениями функциональности. Каждая концепция итератора обладает собственным набором требований, и совместимые с ней алгоритмы должны быть ограничены этими требованиями. Итератор ввода может быть разыменован для обращения к определенному объекту и инкрементирован следующему итератору в последовательности.

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

Рекомендуется сделать сопоставление предпочтительным ассоциативным контейнером, где условия, ассоциирующие значения с ключами, удовлетворяют требованиям приложения. Модель для этого типа структуры представляет собой упорядоченный список уникальных ключевых слов, с которыми связаны значения строк, предоставляющие определения. Если слово имеет несколько правильных определений, поэтому ключ не уникален, то multimap будет являться контейнером выбора. Если сохранен обычный список слов, подходящим контейнером будет набор. Если допускается многократное использование слов, допустимым вариантом будет множественный набор.

Таблица упорядочивает элементы, которыми она управляет, путем вызова хранимой функции типа key_compare . Этот сохраненный объект является функцией сравнения, доступ к которой осуществляется путем вызова key_comp метода. В общем случае все два заданных элемента сравниваются, чтобы определить, меньше ли один из них или эквивалентен ли он. После сравнения всех элементов создается упорядоченная последовательность неэквивалентных элементов.

Функция сравнения — это бинарный предикат, который вызывает строгое слабое упорядочение в стандартном математически смысле. Бинарный предикат f (x, y) — это объект функции, имеющий два объекта-аргумента x и y, а также возвращаемое значение true или false . Порядок, накладываемый на набор, является строгим слабым порядком, если бинарный предикат является нерефлексивным, антисимметричным и транзитивным, и если эквивалентность является транзитивным, то два объекта x и y определяются как эквивалентные, если используются значения f (x, y) и f (y, x) false . Если более строгое условие равенства между ключами заменяет условие эквивалентности, порядок становится общим (т. е. все элементы упорядочиваются в соответствии друг с другом) и сопоставленные ключи будут неотличимы друг от друга.

В C++ 14 можно включить разнородный Уточняющий запрос, указав std::less<> предикат или std::greater<> , не имеющий параметров типа. Дополнительные сведения см. в разделе разнородный Уточняющий запрос в ассоциативных контейнерах .

Члены

Конструкторы

Имя Описание
map Создание списка определенного размера или с элементами, обладающими указанным значением или указанным allocator , либо в качестве копии другого сопоставления.

Определения типов

Имя Описание
allocator_type Typedef для класса allocator для объекта сопоставления.
const_iterator Typedef для двунаправленного итератора, который может читать const элемент в map .
const_pointer Typedef для указателя на const элемент в сопоставлении.
const_reference Typedef для ссылки на const элемент, хранящийся в сопоставлении для чтения и выполнения const операций.
const_reverse_iterator Тип, предоставляющий двунаправленный итератор, который может читать любой const элемент в map .
difference_type Цельночисленный Typedef со знаком для числа элементов в сопоставлении, в диапазоне между элементами, на которые указывают итераторы.
iterator Typedef для двунаправленного итератора, который может считывать или изменять любой элемент в сопоставлении.
key_compare Typedef для объекта функции, который может сравнить два ключа сортировки для определения относительного порядка двух элементов в map .
key_type Typedef для ключа сортировки, хранящегося в каждом элементе сопоставления.
mapped_type Typedef для данных, хранящихся в каждом элементе сопоставления.
pointer Typedef для указателя на const элемент в сопоставлении.
reference Typedef для ссылки на элемент, сохраненный в сопоставлении.
reverse_iterator Typedef для двунаправленного итератора, который может считывать или изменять элемент в обратном сопоставлении.
size_type Целочисленный Typedef без знака для числа элементов в сопоставлении
value_type Typedef для типа объекта, хранящейся в виде элемента в сопоставлении.

Функции элементов

Функция-член Описание
at Находит элемент с указанным значением ключа.
begin Возвращает итератор, указывающий на первый элемент в map .
cbegin Возвращает константный итератор, указывающий на первый элемент в map .
cend Возврат итератора const после конца.
clear Стирает все элементы в map .
contains C++ 20 Проверьте, существует ли элемент с указанным ключом в map .
count Возврат числа элементов в сопоставлении, ключ которого соответствует ключу, заданному в параметре.
crbegin Возвращает константный итератор, указывающий на первый элемент в обращении map .
crend Возвращает константный итератор, указывающий на положение после последнего элемента в обращенном операторе map .
emplace Вставляет элемент, созданный на месте, в map .
emplace_hint Вставляет элемент, созданный на месте map , с указанием размещения.
empty Возвращает, true Если объект map пуст.
end Возврат итератора после конца.
equal_range Возвращает пару итераторов. Первый итератор в паре указывает на первый элемент в map с ключом, который больше указанного ключа. Второй итератор в паре указывает на первый элемент в map с ключом, который больше или равен данному ключу.
erase Удаление элемента или диапазона элементов в сопоставлении с заданных позиций.
find Возвращает итератор, указывающий на расположение элемента в с map ключом, равным указанному ключу.
get_allocator Возвращает копию объекта allocator , который используется для создания map .
insert Вставляет элемент или диапазон элементов в map в заданной позиции.
key_comp Возвращает копию объекта сравнения, который использовался для упорядочивания ключей в map .
lower_bound Возвращает итератор к первому элементу в map , имеющему значение ключа, которое больше или равно значению указанного ключа.
max_size Возвращает максимальную длину map .
rbegin Возвращает итератор, указывающий на первый элемент в обратном map .
rend Возвращает итератор, указывающий на положение после последнего элемента в обращенном операторе map .
size Возвращает количество элементов в контейнере map .
swap Обмен элементами между двумя сопоставлениями.
upper_bound Возвращает итератор к первому элементу в map , имеющему значение ключа, которое больше указанного ключа.
value_comp Извлекает копию объекта сравнения, который используется для упорядочивания значений элементов в map .

Операторы

Имя Описание
operator[] Вставка элемента в сопоставление с заданным значением ключа.
operator= Замена элементов сопоставления копией другого сопоставления.

allocator_type

Тип, представляющий класс распределителя для объекта-сопоставления.

Пример

См. пример для get_allocator для примера, в котором используется allocator_type .

Поиск элемента с заданным значением ключа.

Параметры

key
Значение ключа, которое необходимо найти.

Возвращаемое значение

Ссылка на значение данных найденного элемента.

Remarks

Если значение ключа аргумента не найдено, функция создает out_of_range объект класса класса.

Пример

begin

Возвращает итератор, обращающийся к первый элемент в контейнере map .

Возвращаемое значение

Двунаправленный итератор, обращающийся к первому элементу в map или местоположению, на котором заканчивается пустая схема.

Пример

cbegin

Возвращает const итератор, который обращается к расположению сразу за последним элементом в диапазоне.

Возвращаемое значение

const Двунаправленный итератор, обращающийся к первому элементу в диапазоне или расположению непосредственно за концом пустого диапазона (для пустого диапазона cbegin() == cend() ).

Remarks

С возвращаемым значением cbegin элементы в диапазоне нельзя изменять.

Эту функцию-член можно использовать вместо функции-члена begin() , чтобы гарантировать, что возвращаемое значение будет const_iterator . Как правило, он используется вместе с auto ключевым словом выведения типа, как показано в следующем примере. В этом примере рекомендуется использовать Container изменяемый (не- const ) контейнер любого типа, который поддерживает begin() и cbegin() .

Возвращает const итератор, который обращается к расположению сразу за последним элементом в диапазоне.

Возвращаемое значение

const Итератор двунаправленного доступа, указывающий на сразу за концом диапазона.

Remarks

cend используется для проверки того, прошел ли итератор конец диапазона.

Эту функцию-член можно использовать вместо функции-члена end() , чтобы гарантировать, что возвращаемое значение будет const_iterator . Как правило, он используется вместе с auto ключевым словом выведения типа, как показано в следующем примере. В этом примере рекомендуется использовать Container изменяемый (не- const ) контейнер любого типа, который поддерживает end() и cend() .

Значение, возвращаемое cend , не должно быть подвергнуто удалению ссылки.

clear

Стирает все элементы в сопоставлении.

Пример

В следующем примере демонстрируется использование map::clear функции члена.

const_iterator

Тип, предоставляющий двунаправленный итератор, который может читать const элемент в map .

Remarks

Тип const_iterator нельзя использовать для изменения значения элемента.

Объект, const_iterator определенный сопоставлением, указывает на элементы, являющиеся объектами value_type типа pair , первый элемент которых является ключом элемента, а второй — сопоставленной частью, которая удерживается элементом.

Для разыменования объекта, const_iterator cIter указывающего на элемент в сопоставлении, используйте -> оператор.

Чтобы получить доступ к значению ключа для элемента, используйте cIter -> first , что эквивалентно ( * cIter ). first .

Чтобы получить доступ к значению сопоставленной части элемента, используйте cIter -> second , что эквивалентно ( * cIter ). second .

Пример

См. пример для begin для примера, в котором используется const_iterator .

const_pointer

Тип, предоставляющий указатель на const элемент в сопоставлении.

Remarks

Тип const_pointer нельзя использовать для изменения значения элемента.

В большинстве случаев iterator для доступа к элементам в объекте Map следует использовать.

const_reference

Тип, предоставляющий ссылку на const элемент, хранящийся в сопоставлении для чтения и выполнения const операций.

Пример

const_reverse_iterator

Тип, предоставляющий двунаправленный итератор, который может читать любой const элемент в map .

Remarks

Тип const_reverse_iterator не может изменять значение элемента и используется для прохода по карте в обратную.

Объект, const_reverse_iterator определенный сопоставлением, указывает на элементы, являющиеся объектами value_type типа pair , первый элемент которых является ключом элемента, а второй — сопоставленной частью, которая удерживается элементом.

Для разыменования const_reverse_iterator crIter , указывающего на элемент в сопоставлении, используйте оператор -> .

Чтобы получить значение ключа для элемента, используйте crIter -> first , что эквивалентно ( * crIter ). first

Чтобы получить доступ к значению сопоставленной версии элемента, используйте crIter -> second , что эквивалентно ( * crIter ). first

Пример

rend Пример объявления и использования см. в примере для const_reverse_iterator .

count

Возвращает число элементов в объекте map, ключи которых соответствуют ключу, заданному параметром.

Параметры

key
Значение ключа для сравнения с ключами элементов объекта map.

Возвращаемое значение

1, если объект map содержит элемент, ключ сортировки которого совпадает с ключом параметра. 0, если объект map не содержит ни одного элемента с соответствующим ключом.

Remarks

Функция-член возвращает количество элементов x в диапазоне

[ lower_bound (ключ), upper_bound (ключ))

— 0 или 1 для map, который является уникальным ассоциативным контейнером.

Пример

В следующем примере демонстрируется использование map::count функции члена.

contains

Проверяет, существует ли элемент с указанным ключом в map .

Параметры

key
Искомое значение ключа элемента.

Возвращаемое значение

true значение, если элемент найден в контейнере; false в противном случае — значение.

Remarks

contains() Новое в C++ 20. Чтобы использовать его, укажите /std:c++latest параметр компилятора.

template bool contains(const K& key) const принимает участие в разрешении перегрузки только в key_compare том случае, если является прозрачным. Дополнительные сведения см. в разделе разнородный Уточняющий запрос в ассоциативных контейнерах .

Пример

crbegin

Возвращает константный итератор на первый элемент в обратной карте.

Возвращаемое значение

Константный Обратный двунаправленный итератор, обращающийся к первому элементу в обратную map или обращающийся к последнему элементу в необращенном порядке map .

Remarks

crbegin используется с обратным map так же, как используется begin с map .

При возвращении значения crbegin map объект не может быть изменен

crbegin можно использовать для перебора map в обратном порядке.

Пример

crend

Возвращает константный итератор, адресующий положение после последнего элемента в обратном сопоставлении.

Возвращаемое значение

Константный Обратный двунаправленный итератор, который обращается к расположению, следующему за последним элементом в обращении map (расположении, предшествующем первому элементу в неизмененном порядке map ).

Remarks

crend используется с обратным сопоставлением так же, как и end с map .

При возвращении значения crend map объект не может быть изменен.

crend используется, чтобы проверить, достиг ли итератор конца map .

Значение, возвращаемое crend , не должно быть подвергнуто удалению ссылки.

Пример

difference_type

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

Remarks

difference_type — тип, возвращаемый при вычитании или приращении через итераторы контейнера. difference_type обычно используется для представления количества элементов в диапазоне [ first, last) между итераторами first и last , включая элемент, на который указывает first , и диапазон элементов до элемента, на который указывает last , но не включая его.

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

Пример

emplace

Вставляет в сопоставление элемент, созданный на месте (без выполнения операций копирования или перемещения).

Параметры

args
Аргументы, перенаправляемые для создания элемента, который необходимо вставить в карту, если он уже не содержит элемент, значение которого эквивалентно упорядочено.

Возвращаемое значение

Объект pair , bool компонент которого имеет значение true , если была сделана вставка, и false если она уже содержала элемент эквивалентного значения в упорядочении. Компонент итератора пары «возвращаемое значение» указывает на вновь вставленный элемент, если bool компонент имеет значение true, или на существующий элемент, если bool компонент имеет значение false.

Для доступа к компоненту-итератору pair pr используйте pr.first ; для разыменования его используйте *pr.first . Чтобы получить доступ к bool компоненту, используйте pr.second . См. пример кода далее в этой статье.

Remarks

Эта функция не делает недействительными никакие итераторы или ссылки.

Во время назначения места при возникновении исключения состояние контейнера не изменяется.

value_type Элемент является парой, поэтому значение элемента будет упорядоченной парой, первый компонент которой равен значению ключа, а второй компонент равен значению данных элемента.

Пример

emplace_hint

Вставляет созданный элемент на место (операции копирования или перемещения не выполняются) с указанием о размещении.

Параметры

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

where
Место начала поиска правильной точки вставки. (Если точка непосредственно перед точкой, то Вставка может выполняться в периодической константе вместо логарифмического времени.)

Возвращаемое значение

Итератор, указывающий на вновь вставленный элемент.

Если вставка не удалась, так как элемент уже существует, возвращается итератор, указывающий на существующий элемент с его ключом.

Remarks

Эта функция не делает недействительными никакие итераторы или ссылки.

Во время назначения места при возникновении исключения состояние контейнера не изменяется.

value_type Элемент является парой, поэтому значение элемента будет упорядоченной парой, первый компонент которой равен значению ключа, а второй компонент равен значению данных элемента.

Пример

empty

Проверяет, что сопоставление пустое.

Возвращаемое значение

true значение, если схема пуста; false значение, если схема не пуста.

Пример

Возврат итератора после конца.

Возвращаемое значение

Итератор после конца. Если карта пуста, то map::end() == map::begin() .

Remarks

end используется для проверки того, прошел ли итератор конец его сопоставлений.

Значение, возвращаемое end , не должно быть подвергнуто удалению ссылки.

Пример кода см. в разделе map::find .

equal_range

Возвращает пару итераторов, представляющих lower_bound ключ и upper_bound ключ.

Параметры

key
Ключевое значение для сравнения с ключом сортировки элемента из сопоставления, в котором ведется поиск.

Возвращаемое значение

Для доступа к первому итератору пары pr , возвращаемой функцией-членом, нужно использовать pr . во- первых, и для разыменования итератора нижней границы используйте * ( pr . первый). Для доступа ко второму итератору пары pr , возвращаемой функцией-членом, нужно использовать pr . во-вторых, а для разыменования итератора верхней границы используйте * ( pr . второй).

Пример

erase

Удаляет элемент или диапазон элементов из сопоставления из указанной позиции или удаляет элементы, которые соответствуют указанному ключу.

Параметры

Where
Положение удаляемого элемента.

First
Положение первого удаляемого элемента.

Last
Позиция после последнего элемента для удаления.

Key
Значение ключа удаляемых элементов.

Возвращаемое значение

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

Третья функция-член возвращает количество элементов, которые были удалены из сопоставления.

Пример

Возвращает итератор, ссылающийся на элемент в карте, ключ которого эквивалентен заданному ключу.

Параметры

key
Значение ключа, с которым сравнивается ключ сортировки элемента из карты, по которой выполняется поиск.

Возвращаемое значение

Итератор, который ссылается на расположение элемента с указанным ключом или расположение после последнего элемента в map ( map::end() ), если совпадение для ключа не найдено.

Remarks

Функция-член возвращает итератор, который ссылается на элемент в, map ключ сортировки которого эквивалентен ключу аргумента в бинарном предикате, который вызывает упорядочивание на основе отношения сравнения «меньше».

Если возвращаемое значение find назначается const_iterator , объект Map изменить нельзя. Если возвращаемое значение find присваивается iterator , то объект Map можно изменить

Пример

get_allocator

Возвращает копию объекта-распределителя, использованного для создания сопоставления.

Возвращаемое значение

Распределитель, используемый сопоставлением.

Remarks

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

Пример

insert

Вставляет элемент или диапазон элементов в сопоставление.

Параметры

Val
Значение элемента, вставляемого в карту, если он уже не содержит элемент, ключ которого эквивалентно упорядочен.

Where
Место начала поиска правильной точки вставки. (Если эта точка непосредственно предшествует Where , то вставка может выполняться в периодической константе вместо логарифмического времени.)

ValTy
Параметр шаблона, указывающий тип аргумента, который может использоваться сопоставлением для создания элемента value_type , и идеального перенаправления Val в качестве аргумента.

First
Позиция первого элемента, который следует скопировать.

Last
Позиция непосредственно перед последним элементом, который следует скопировать.

InputIterator
Аргумент функции-шаблона, соответствующий требованиям итератора ввода , указывающего на элементы типа, которые могут использоваться для построения value_type объектов.

IList
Объект, initializer_list из которого копируются элементы.

Возвращаемое значение

Одноэлементные функции-члены (1) и (2) возвращают объект, pair bool компонент которого имеет значение true, если была произведена вставка, и значение false, если в карте уже содержится элемент, ключ которого имеет эквивалентное значение в упорядочении. Компонент итератора пары «возвращаемое значение» указывает на вновь вставленный элемент, если bool компонент имеет значение true, или на существующий элемент, если bool компонент имеет значение false.

Одноэлементные функции-члены с подсказкой (3) и (4) возвращают итератор, который указывает на позицию, где новый элемент был вставлен, или, если элемент с эквивалентным ключом уже существует, указывает на существующий элемент.

Remarks

Эта функция не делает никакие итераторы, указатели или ссылки недействительными.

При вставке всего одного элемента при возникновении исключения состояние контейнера не изменяется. Если во время вставки нескольких элементов вызывается исключение, контейнер остается в неопределенном, но допустимом состоянии.

Чтобы получить доступ к компоненту итератора pair pr , возвращаемому функциями-членами с одним элементом, используйте оператор pr.first ; для разыменования итератора в возвращенной паре используйте *pr.first , предоставив элемент. Чтобы получить доступ к bool компоненту, используйте pr.second . См. пример кода далее в этой статье.

value_type Контейнером является typedef, принадлежащий контейнеру, а для Map map ::value_type — pair . Значение элемента — это упорядоченная пара, в которой первый компонент эквивалентен значению ключа, а второй компонент — значению данных элемента.

Функция-член с диапазоном (5) вставляет последовательность значений элементов в сопоставление, соответствующее каждому элементу, адресованному итератором в диапазоне [First, Last) . Следовательно, Last не вставляется. Контейнер функции-члена end() ссылается на позицию сразу после последнего элемента в контейнере. Например, оператор m.insert(v.begin(), v.end()); пытается вставить все элементы v в m . Вставляются только элементы с уникальными значениями в диапазоне. Повторяющиеся значения игнорируются. Чтобы увидеть, какие элементы отклонены, используйте одноэлементные версии insert .

Функция-член списка инициализаторов (6) использует initializer_list для копирования элементов в карту.

Для вставки элемента, созданного на месте (т. е. не выполняются операции копирования или перемещения), map::emplace см map::emplace_hint . и.

Пример

iterator

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

Remarks

Итератор, определяемый картой, указывает на элементы, являющиеся объектами value_type типа, pair первый элемент которых является ключом элемента, а второй элемент — сопоставленная база данных, удерживаемая элементом.

Для разыменования итератора iter , указывающего на элемент в сопоставлении, используйте -> оператор.

Чтобы получить доступ к значению ключа для элемента, используйте Iter->first , что эквивалентно (*Iter).first . Чтобы получить доступ к значению сопоставленной версии элемента, используйте Iter->second , что эквивалентно (*Iter).second .

Пример

begin Пример объявления и использования см. в разделе пример iterator .

key_comp

Извлекает копию объекта сравнения, использованного для упорядочивания ключей в сопоставлении.

Возвращаемое значение

Возвращает объект-функцию, которую сопоставление использует для упорядочивания своих элементов.

Remarks

Хранимый объект определяет функцию-член

возвращающий значение, true Если left right в порядке сортировки предшествует и не равны.

Пример

key_compare

Тип, предоставляющий объект функции, который может сравнить два ключа сортировки для определения относительного порядка двух элементов в контейнере map .

Remarks

key_compare является синонимом для параметра-шаблона Traits .

Дополнительные сведения о Traits см. в разделе о map классе .

Пример

key_comp Пример объявления и использования см. в разделе пример key_compare .

key_type

Тип, который описывает ключ сортировки, хранящийся в каждом элементе сопоставления.

Remarks

key_type является синонимом для параметра-шаблона Key .

Дополнительные сведения о см Key . в подразделе «Примечания » статьи о map классе .

Пример

value_type Пример объявления и использования см. в разделе пример key_type .

lower_bound

Возвращает итератор, указывающий на первый элемент в сопоставлении с ключом, значение которого больше указанного ключа или равно ему.

Параметры

key
Ключевое значение для сравнения с ключом сортировки элемента из сопоставления, в котором ведется поиск.

Возвращаемое значение

Объект iterator или const_iterator , который обращается к расположению элемента в сопоставлении с ключом, который равен ключу аргумента или больше него, либо обращается к расположению, следующему за последним элементом в, map Если совпадение для ключа не найдено.

Если возвращаемое значение lower_bound назначается const_iterator , объект Map изменить нельзя. Если возвращаемое значение lower_bound присваивается iterator , то объект Map можно изменить.

Пример

Создает сопоставление, которое является пустым или копией части или целого другого сопоставления.

Параметры

Al
Класс распределителя памяти, который будет использоваться для этого объекта-сопоставления. Значение по умолчанию — Allocator .

Comp
Функция сравнения типа const Traits , используемая для упорядочивания элементов в map . Значение по умолчанию — hash_compare .

Right
Сопоставление, копией которого будет создаваемое сопоставление.

First
Положение первого элемента в диапазоне копируемых элементов.

Last
Положение первого элемента после диапазона копируемых элементов.

IList
Объект initializer_list, из которого будут скопированы элементы.

Remarks

Все конструкторы хранят тип объекта распределителя, который управляет хранилищем памяти для Map и затем может быть возвращен путем вызова метода get_allocator . Параметр-распределитель часто не указывается в объявлениях класса и в макросах предварительной обработки, используемых для замены альтернативных распределителей.

Все конструкторы инициализируют свои сопоставления.

Все конструкторы хранят объект функции с признаками типа, который используется для установления порядка ключей в сопоставлении и может быть впоследствии возвращен вызовом key_comp .

Первые три конструктора задают пустую начальную карту, второй задает тип функции сравнения ( Comp ), используемой при установлении порядка элементов, а третий явно указывает тип распределителя ( Al ) для использования. Ключевое слово explicit подавляет некоторые виды автоматического преобразования типов.

Четвертый конструктор указывает копию схемы Right .

Пятый конструктор указывает копию Map путем перемещения Right .

В шестом, седьмом и 8 конструкторах используется объект, initializer_list из которого копируются элементы.

Следующие три конструктора копируют диапазон [First, Last) сопоставления с повышением точности при указании типа функции сравнения класса Traits и распределителя.

Пример

mapped_type

Тип, который представляет данные, хранящиеся в сопоставлении.

Remarks

Тип mapped_type является синонимом для параметра шаблона типа класса.

Дополнительные сведения о Type см. в разделе о map классе .

Пример

value_type Пример объявления и использования см. в разделе пример mapped_type .

max_size

Возврат максимальной длины сопоставления.

Возвращаемое значение

Максимально возможная длина сопоставления.

Пример

operator[]

Вставка элемента в сопоставление с заданным значением ключа.

Параметры

key
Значение ключа элемента, который необходимо вставить.

Возвращаемое значение

Ссылка на значение данных вставленного элемента.

Remarks

Если значение ключа аргумента не найдено, оно вставляется вместе со значением по умолчанию для типа данных.

operator[] может использоваться для вставки элементов в карту m с помощью mMap c вывести все элементы = DataValue; WHERE, где DataValue — это значение mapped_type элемента со значением ключа key .

При использовании operator[] для вставки элементов возвращаемая ссылка не отображает, меняет ли вставка уже существующий элемент или создает новый. Функции-члены find и insert могут использоваться для определения того, существует ли уже элемент с указанным ключом перед вставкой.

Пример

operator=

Замена элементов сопоставления копией другого сопоставления.

Параметры

right
Объект, который map копируется в map .

Remarks

После стирания любых существующих элементов в map operator= копирует или перемещает содержимое right в карту.

Пример

pointer

Тип, предоставляющий указатель на элемент в сопоставлении.

Remarks

Тип pointer можно использовать для изменения значения элемента.

В большинстве случаев iterator для доступа к элементам в объекте Map следует использовать.

rbegin

Возвращает итератор, адресующий первый элемент в обратном сопоставлении.

Возвращаемое значение

Обратный двунаправленный итератор, адресующий первый элемент в обратном сопоставлении или адресующий элемент, который был последним элементов в сопоставлении до изменения его порядка на противоположный.

Remarks

rbegin используется с обратным картой точно так же, как используется begin с картой.

Если возвращаемое значение rbegin назначается const_reverse_iterator , то объект Map изменить нельзя. Если возвращенное значение rbegin назначается reverse_iterator , то объект-сопоставление можно изменить.

rbegin можно использовать для перебора сопоставления в обратном порядке.

Пример

reference

Тип, предоставляющий ссылку на элемент, хранящийся в сопоставлении.

Пример

Возвращает итератор, адресующий положение после последнего элемента в обратном сопоставлении.

Возвращаемое значение

Обратный двунаправленный итератор, адресующий положение после последнего элемента в обратном сопоставлении (положение, которое предшествовало первому элементу в сопоставлении до изменения его порядка на противоположный).

Remarks

rend используется с обратным картой точно так же, как используется end с картой.

Если возвращаемое значение rend назначается const_reverse_iterator , то объект Map изменить нельзя. Если возвращенное значение rend назначается reverse_iterator , то объект-сопоставление можно изменить.

rend можно использовать для проверки, достиг ли итератор конца своего сопоставления.

Значение, возвращаемое rend , не должно быть подвергнуто удалению ссылки.

Пример

reverse_iterator

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

Remarks

Тип reverse_iterator не может изменять значение элемента и используется для прохода по карте в обратную.

Объект, reverse_iterator определенный сопоставлением, указывает на элементы, являющиеся объектами value_type типа pair , первый элемент которых является ключом элемента, а второй — сопоставленной частью, которая удерживается элементом.

Для разыменования reverse_iterator спрайта , указывающего на элемент в сопоставлении, используйте -> оператор.

Чтобы получить доступ к значению ключа для элемента, используйте rIter -> First, который эквивалентен ( * rIter ). сначала. Чтобы получить доступ к значению сопоставленной части элемента, используйте rIter -> Second, который эквивалентен ( * rIter ). сначала.

Пример

rbegin Пример объявления и использования см. в разделе пример reverse_iterator .

Возвращает количество элементов в контейнере map .

Возвращаемое значение

Текущая длина сопоставления.

Пример

В следующем примере демонстрируется использование map::size функции члена.

size_type

Беззнаковый целочисленный тип, который может представлять количество элементов в сопоставлении.

Пример

size Пример объявления и использования см. в примере для size_type .

позиции

Обмен элементами между двумя сопоставлениями.

Параметры

right
Сопоставление-аргумент предоставляет элементы для обмена с целевым сопоставлением.

Remarks

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

Пример

upper_bound

Возвращает итератор, указывающий на первый элемент в сопоставлении с ключом, значение которого равно указанному ключу или больше его.

Параметры

key
Аргумент-значение ключа для сравнения с значением ключа сортировки элемента сопоставления, в котором проводится поиск.

Возвращаемое значение

Объект iterator или const_iterator , который обращается к расположению элемента в сопоставлении с ключом, который больше, чем ключ аргумента, или, который обращается к расположению, следующему за последним элементом в, map Если совпадение для ключа не найдено.

Если возвращаемое значение назначено const_iterator , объект Map изменить нельзя. Если возвращаемое значение присвоено iterator , объект Map можно изменить.

Пример

value_comp

Функция-член возвращает объект-функцию, которая определяет порядок элементов в сопоставлении путем сравнения значений их ключей.

Возвращаемое значение

Возвращает объект-функцию сравнения, которую сопоставление использует для упорядочивания своих элементов.

Remarks

Для Map m, если два элемента E1(K1, D1) и E2(априорной оценкой K2, D2) являются объектами типа value_type , где K1 и K1 — это ключи типа, key_type а D1 и D2 — их данные типа mapped_type , то m.value_comp(e1, e2) эквивалентно m.key_comp(k1, k2) . Хранимый объект определяет функцию-член

Возвращает, true Если значение ключа left предшествует значению ключа в порядке сортировки и не равно ему right .

Пример

value_type

Тип объекта, хранящегося в качестве элемента в сопоставлении.

Источник

Оцените статью