Класс concurrent_unordered_mapconcurrent_unordered_map Class

Класс concurrent_unordered_map представляет собой безопасный в отношении параллелизма контейнер, управляющий последовательностью элементов типа std::pair<const K, _Element_type> переменной длины.The concurrent_unordered_map class is a concurrency-safe container that controls a varying-length sequence of elements of type std::pair<const K, _Element_type>. Последовательность представлена таким образом, что позволяет параллельно-безопасно выполнять операции присоединения, получения доступа к элементу, доступа к итератору и обхода итератора.The sequence is represented in a way that enables concurrency-safe append, element access, iterator access, and iterator traversal operations. В данном случае, безопасность с параллелизмом означает, что указатели или итераторы всегда действительны.Here, concurrency-safe means pointers or iterators are always valid. Не гарантируется инициализация элементов или определенный порядок обхода.It's not a guarantee of element initialization, or of a particular traversal order.

СинтаксисSyntax

template <typename K,
    typename _Element_type,
    typename _Hasher = std::hash<K>,
    typename key_equality = std::equal_to<K>,
    typename _Allocator_type = std::allocator<std::pair<const K,
    _Element_type>>
>,
typename key_equality = std::equal_to<K>,
    typename _Allocator_type = std::allocator<std::pair<const K,
    _Element_type>>> class concurrent_unordered_map : public details::_Concurrent_hash<details::_Concurrent_unordered_map_traits<K,
    _Element_type,
details::_Hash_compare<K,
    _Hasher,
key_equality>,
    _Allocator_type,
false>>;

ПараметрыParameters

KK
Тип ключа.The key type.

_Element_type_Element_type
Сопоставленный тип.The mapped type.

_Hasher_Hasher
Тип объекта хэш-функции.The hash function object type. Этот аргумент является необязательным, и значением по умолчанию является std::hash<K>.This argument is optional and the default value is std::hash<K>.

key_equalitykey_equality
Тип объекта функции сравнения на предмет равенства.The equality comparison function object type. Этот аргумент является необязательным, и значением по умолчанию является std::equal_to<K>.This argument is optional and the default value is std::equal_to<K>.

_Allocator_type_Allocator_type
Тип, представляющий сохраненный объект распределителя, который инкапсулирует сведения о выделении и освобождении памяти для параллельной неупорядоченной схемы.The type that represents the stored allocator object that encapsulates details about the allocation and deallocation of memory for the concurrent unordered map. Этот аргумент является необязательным, и значение по умолчанию — std::allocator<std::pair<K , _Element_type>> .This argument is optional and the default value is std::allocator<std::pair<K, _Element_type>>.

ЭлементыMembers

Общедоступные определения типовPublic Typedefs

ИмяName ОписаниеDescription
allocator_type Тип распределителя для управления хранилищем.The type of an allocator for managing storage.
const_iterator Тип постоянного итератора для управляемой последовательности.The type of a constant iterator for the controlled sequence.
const_local_iterator Тип постоянного итератора блока для управляемой последовательности.The type of a constant bucket iterator for the controlled sequence.
const_pointer Тип постоянного указателя на элемент.The type of a constant pointer to an element.
const_reference Тип постоянной ссылки на элемент.The type of a constant reference to an element.
difference_type Тип расстояния со знаком между двумя элементами.The type of a signed distance between two elements.
hasher Тип хэш-функции.The type of the hash function.
iterator Тип итератора для управляемой последовательности.The type of an iterator for the controlled sequence.
key_equal Тип функции сравнения.The type of the comparison function.
key_type Тип ключа упорядочения.The type of an ordering key.
local_iterator Тип итератора блока для управляемой последовательности.The type of a bucket iterator for the controlled sequence.
mapped_type Тип сопоставленного значения, связанного с каждым ключом.The type of a mapped value associated with each key.
pointer Тип указателя на элемент.The type of a pointer to an element.
reference Тип ссылки на элемент.The type of a reference to an element.
size_type Тип беззнакового расстояния между двумя элементами.The type of an unsigned distance between two elements.
value_type Тип элемента.The type of an element.

Открытые конструкторыPublic Constructors

nameName ОписаниеDescription
concurrent_unordered_mapconcurrent_unordered_map Перегружен.Overloaded. Конструирует параллельную неупорядоченную карту.Constructs a concurrent unordered map.

Открытые методыPublic Methods

nameName ОписаниеDescription
atat Перегружен.Overloaded. Находит элемент в concurrent_unordered_map с указанным значением ключа.Finds an element in a concurrent_unordered_map with a specified key value.. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.
hash_functionhash_function Получает сохраненный объект хэш-функции.Gets the stored hash function object.
insertinsert Перегружен.Overloaded. Добавляет элементы в concurrent_unordered_map объект.Adds elements to the concurrent_unordered_map object.
key_eqkey_eq Возвращает сохраненный объект функции сравнения равенства.Gets the stored equality comparison function object.
позицииswap Меняет местами содержимое двух объектов concurrent_unordered_map.Swaps the contents of two concurrent_unordered_map objects. Этот метод не является типобезопасным в режиме параллелизма.This method is not concurrency-safe.
unsafe_eraseunsafe_erase Перегружен.Overloaded. Удаляет элементы из concurrent_unordered_map указанных позиций.Removes elements from the concurrent_unordered_map at specified positions. Этот метод не является типобезопасным в режиме параллелизма.This method is not concurrency-safe.

Открытые операторыPublic Operators

ИмяName ОписаниеDescription
станции[]operator[] Перегружен.Overloaded. Находит или вставляет элемент с указанным ключом.Finds or inserts an element with the specified key. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.
Оператор =operator= Перегружен.Overloaded. Присваивает concurrent_unordered_map этому объекту содержимое другого объекта.Assigns the contents of another concurrent_unordered_map object to this one. Этот метод не является типобезопасным в режиме параллелизма.This method is not concurrency-safe.

КомментарииRemarks

Подробные сведения о concurrent_unordered_map классе см. в разделе Parallel Containers and Objects.For detailed information on the concurrent_unordered_map class, see Parallel Containers and Objects.

Иерархия наследованияInheritance Hierarchy

_Traits

_Concurrent_hash

concurrent_unordered_map

ТребованияRequirements

Заголовок: concurrent_unordered_map. hHeader: concurrent_unordered_map.h

Пространство имен: параллелизмNamespace: concurrency

вat

Находит элемент в concurrent_unordered_map с указанным значением ключа.Finds an element in a concurrent_unordered_map with a specified key value.. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.

mapped_type& at(const key_type& KVal);

const mapped_type& at(const key_type& KVal) const;

ПараметрыParameters

квалKVal
Значение ключа, которое необходимо найти.The key value to find.

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

Ссылка на значение данных найденного элемента.A reference to the data value of the element found.

КомментарииRemarks

Если значение ключа аргумента не найдено, функция создает объект класса out_of_range.If the argument key value is not found, the function throws an object of class out_of_range.

beginbegin

Возвращает итератор, указывающий на первый элемент в параллельном контейнере.Returns an iterator pointing to the first element in the concurrent container. Данный метод безопасен в режиме параллелизма.This method is concurrency safe.

iterator begin();

const_iterator begin() const;

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

Итератор на первый элемент в параллельном контейнере.An iterator to the first element in the concurrent container.

cbegincbegin

Возвращает константный итератор, указывающий на первый элемент в параллельном контейнере.Returns a const iterator pointing to the first element in the concurrent container. Данный метод безопасен в режиме параллелизма.This method is concurrency safe.

const_iterator cbegin() const;

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

Константный итератор для первого элемента в параллельном контейнере.A const iterator to the first element in the concurrent container.

cendcend

Возвращает константный итератор, указывающий на расположение, следующее за последним элементом в параллельном контейнере.Returns a const iterator pointing to the location succeeding the last element in the concurrent container. Данный метод безопасен в режиме параллелизма.This method is concurrency safe.

const_iterator cend() const;

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

Константный итератор к расположению, следующему за последним элементом в параллельном контейнере.A const iterator to the location succeeding the last element in the concurrent container.

открытымclear

Стирает все элементы в параллельном контейнере.Erases all the elements in the concurrent container. Эта функция не является типобезопасным.This function is not concurrency safe.

void clear();

concurrent_unordered_mapconcurrent_unordered_map

Конструирует параллельную неупорядоченную карту.Constructs a concurrent unordered map.

explicit concurrent_unordered_map(
    size_type _Number_of_buckets = 8,
    const hasher& _Hasher = hasher(),
    const key_equal& key_equality = key_equal(),
    const allocator_type& _Allocator = allocator_type());

concurrent_unordered_map(
    const allocator_type& _Allocator);

template <typename _Iterator>
concurrent_unordered_map(_Iterator _Begin,
    _Iterator _End,
    size_type _Number_of_buckets = 8,
    const hasher& _Hasher = hasher(),
    const key_equal& key_equality = key_equal(),
    const allocator_type& _Allocator = allocator_type());

concurrent_unordered_map(
    const concurrent_unordered_map& _Umap);

concurrent_unordered_map(
    const concurrent_unordered_map& _Umap,
    const allocator_type& _Allocator);

concurrent_unordered_map(
    concurrent_unordered_map&& _Umap);

ПараметрыParameters

_Iterator_Iterator
Тип итератора ввода.The type of the input iterator.

_Number_of_buckets_Number_of_buckets
Начальное число сегментов для этой неупорядоченной схемы.The initial number of buckets for this unordered map.

_Hasher_Hasher
Хэш-функция для этой неупорядоченной схемы.The hash function for this unordered map.

key_equalitykey_equality
Функция сравнения на равенство для этой неупорядоченной схемы.The equality comparison function for this unordered map.

_Allocator_Allocator
Распределитель для этой неупорядоченной схемы.The allocator for this unordered map.

_Begin_Begin
Положение первого элемента в диапазоне копируемых элементов.The position of the first element in the range of elements to be copied.

_End_End
Положение первого элемента после диапазона копируемых элементов.The position of the first element beyond the range of elements to be copied.

_Umap_Umap
Исходный объект concurrent_unordered_map для копирования или перемещения элементов.The source concurrent_unordered_map object to copy or move elements from.

КомментарииRemarks

Все конструкторы хранят объект распределителя _Allocator и инициализируют неупорядоченную карту.All constructors store an allocator object _Allocator and initialize the unordered map.

Первый конструктор указывает пустую начальную карту и явно указывает количество сегментов, хэш-функции, функции равенства и типа распределителя для использования.The first constructor specifies an empty initial map and explicitly specifies the number of buckets, hash function, equality function and allocator type to be used.

Второй конструктор указывает распределитель для неупорядоченной схемы.The second constructor specifies an allocator for the unordered map.

Третий конструктор указывает значения, предоставляемые диапазоном итератора [ _Begin , _End ).The third constructor specifies values supplied by the iterator range [ _Begin, _End).

Четвертый и пятый конструкторы указывают копию параллельной неупорядоченной таблицы _Umap .The fourth and fifth constructors specify a copy of the concurrent unordered map _Umap.

Последний конструктор задает перемещение параллельной неупорядоченной таблицы _Umap .The last constructor specifies a move of the concurrent unordered map _Umap.

расчетаcount

Подсчитывает количество элементов, соответствующих указанному ключу.Counts the number of elements matching a specified key. Эта функция является потенциальной в режиме параллелизма.This function is concurrency safe.

size_type count(const key_type& KVal) const;

ПараметрыParameters

квалKVal
Ключ, который нужно найти.The key to search for.

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

Количество раз, когда ключ отображается в контейнере.The number of times number of times the key appears in the container.

указаноempty

Проверяет отсутствие элементов.Tests whether no elements are present. Данный метод безопасен в режиме параллелизма.This method is concurrency safe.

bool empty() const;

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

true значение, если параллельный контейнер пуст; false в противном случае —.true if the concurrent container is empty, false otherwise.

КомментарииRemarks

При наличии параллельных вставок независимо от того, является ли параллельный контейнер пустым, может измениться сразу после вызова этой функции, прежде чем возвращаемое значение будет считаться четным.In the presence of concurrent inserts, whether or not the concurrent container is empty may change immediately after calling this function, before the return value is even read.

endend

Возвращает итератор, указывающий на расположение, следующее за последним элементом в параллельном контейнере.Returns an iterator pointing to the location succeeding the last element in the concurrent container. Данный метод безопасен в режиме параллелизма.This method is concurrency safe.

iterator end();

const_iterator end() const;

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

Итератор на расположение, на котором заканчивается последний элемент в параллельном контейнере.An iterator to the location succeeding the last element in the concurrent container.

equal_rangeequal_range

Находит диапазон, соответствующий указанному ключу.Finds a range that matches a specified key. Эта функция является потенциальной в режиме параллелизма.This function is concurrency safe.

std::pair<iterator,
    iterator> equal_range(
    const key_type& KVal);

std::pair<const_iterator,
    const_iterator> equal_range(
    const key_type& KVal) const;

ПараметрыParameters

квалKVal
Искомое значение ключа.The key value to search for.

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

Пара , в которой первый элемент является итератором на начало, а второй элемент — итератором на конец диапазона.A pair where the first element is an iterator to the beginning and the second element is an iterator to the end of the range.

КомментарииRemarks

Одновременные вставки могут привести к вставке дополнительных ключей после итератора begin и перед конечным итератором.It is possible for concurrent inserts to cause additional keys to be inserted after the begin iterator and before the end iterator.

Найденоfind

Определяет элемент, соответствующий указанному ключу.Finds an element that matches a specified key. Эта функция является потенциальной в режиме параллелизма.This function is concurrency safe.

iterator find(const key_type& KVal);

const_iterator find(const key_type& KVal) const;

ПараметрыParameters

квалKVal
Искомое значение ключа.The key value to search for.

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

Итератор, указывающий на расположение первого элемента, совпадающего с предоставленным ключом, или итератор, end() Если такого элемента не существует.An iterator pointing to the location of the first element that matched the key provided, or the iterator end() if no such element exists.

get_allocatorget_allocator

Возвращает сохраненный объект распределителя для этого параллельного контейнера.Returns the stored allocator object for this concurrent container. Данный метод безопасен в режиме параллелизма.This method is concurrency safe.

allocator_type get_allocator() const;

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

Сохраненный объект распределителя для этого параллельного контейнера.The stored allocator object for this concurrent container.

hash_functionhash_function

Получает сохраненный объект хэш-функции.Gets the stored hash function object.

hasher hash_function() const;

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

Сохраненный объект хэш-функции.The stored hash function object.

Вставляетinsert

Добавляет элементы в concurrent_unordered_map объект.Adds elements to the concurrent_unordered_map object.

std::pair<iterator,
    bool> insert(
    const value_type& value);

iterator insert(
    const_iterator _Where,
    const value_type& value);

template<class _Iterator>
void insert(_Iterator first,
    _Iterator last);

template<class V>
std::pair<iterator,
    bool> insert(
    V&& value);

template<class V>
typename std::enable_if<!std::is_same<const_iterator,
    typename std::remove_reference<V>::type>::value,
    iterator>::type insert(
    const_iterator _Where,
    V&& value);

ПараметрыParameters

_Iterator_Iterator
Тип итератора, используемый для вставки.The iterator type used for insertion.

VV
Тип значения, вставляемого в карту.The type of the value inserted into the map.

valuevalue
Вставляемое значение.The value to be inserted.

_Where_Where
Начальное расположение для поиска точки вставки.The starting location to search for an insertion point.

firstfirst
Начало вставляемого диапазона.The beginning of the range to insert.

lastlast
Конец вставляемого диапазона.The end of the range to insert.

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

Пара, содержащая итератор и логическое значение.A pair that contains an iterator and a boolean value. Дополнительные сведения см. в разделе "Примечания".See the Remarks section for more details.

КомментарииRemarks

Первая функция – член определяет, существует ли элемент X в последовательности, ключ которой имеет эквивалентное упорядочение value .The first member function determines whether an element X exists in the sequence whose key has equivalent ordering to that of value. В противном случае он создает такой элемент X и инициализирует его с помощью value .If not, it creates such an element X and initializes it with value. Затем функция определяет итератор where , обозначающий X. Если произошла Вставка, функция возвращает значение std::pair(where, true) .The function then determines the iterator where that designates X. If an insertion occurred, the function returns std::pair(where, true). В противном случае возвращается значение std::pair(where, false).Otherwise, it returns std::pair(where, false).

Вторая функция-член возвращает инструкцию INSERT ( value ), используя в _Where качестве начальной позиции в управляемой последовательности для поиска точки вставки.The second member function returns insert( value), using _Where as a starting place within the controlled sequence to search for the insertion point.

Третья функция-член вставляет последовательность значений элементов из диапазона [ first , last ).The third member function inserts the sequence of element values from the range [ first, last).

Последние две функции-члена ведут себя так же, как первые два, за исключением того, что value используется для создания вставленного значения.The last two member functions behave the same as the first two, except that value is used to construct the inserted value.

key_eqkey_eq

Возвращает сохраненный объект функции сравнения равенства.Gets the stored equality comparison function object.

key_equal key_eq() const;

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

Сохраненный объект функции сравнения равенства.The stored equality comparison function object.

load_factorload_factor

Выполняет вычисление и возвращает текущий коэффициент загрузки контейнера.Computes and returns the current load factor of the container. Коэффициент загрузки — это количество элементов в контейнере, деленное на количество сегментов.The load factor is the number of elements in the container divided by the number of buckets.

float load_factor() const;

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

Коэффициент загрузки для контейнера.The load factor for the container.

max_load_factormax_load_factor

Возвращает или задает максимальный коэффициент загрузки контейнера.Gets or sets the maximum load factor of the container. Максимальный коэффициент загрузки — это наибольшее число элементов, чем может быть в любом контейнере, прежде чем контейнер будет расти до размера внутренней таблицы.The maximum load factor is the largest number of elements than can be in any bucket before the container grows its internal table.

float max_load_factor() const;

void max_load_factor(float _Newmax);

ПараметрыParameters

_Newmax

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

Первая функция-член возвращает сохраненный коэффициент максимальной нагрузки.The first member function returns the stored maximum load factor. Вторая функция-член не возвращает значение, но вызывает исключение out_of_range , если указанный коэффициент загрузки является недопустимым.The second member function does not return a value but throws an out_of_range exception if the supplied load factor is invalid..

max_sizemax_size

Возвращает максимальный размер параллельного контейнера, определяемого распределителем.Returns the maximum size of the concurrent container, determined by the allocator. Данный метод безопасен в режиме параллелизма.This method is concurrency safe.

size_type max_size() const;

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

Максимальное число элементов, которые могут быть вставлены в этот параллельный контейнер.The maximum number of elements that can be inserted into this concurrent container.

КомментарииRemarks

Это значение верхней границы может быть выше, чем на самом деле может храниться в контейнере.This upper bound value may actually be higher than what the container can actually hold.

operator[]operator[]

Находит или вставляет элемент с указанным ключом.Finds or inserts an element with the specified key. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.

mapped_type& operator[](const key_type& kval);

mapped_type& operator[](key_type&& kval);

ПараметрыParameters

квалKVal
Значение ключа дляThe key value to

поиска или вставки.find or insert.

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

Ссылка на значение данных найденного или вставленного элемента.A reference to the data value of the found or inserted element.

КомментарииRemarks

Если значение ключа аргумента не найдено, он вставляется вместе со значением по умолчанию для такого типа данных.If the argument key value is not found, then it is inserted along with the default value of the data type.

operator[] может использоваться для вставки элементов в сопоставление m с помощью m[key] = DataValue;, где DataValue — значение mapped_type элемента со значением ключа key.operator[] may be used to insert elements into a map m using m[key] = DataValue;, where DataValue is the value of the mapped_type of the element with a key value of key.

При использовании operator[] для вставки элементов возвращаемая ссылка не отображает, меняет ли вставка уже существующий элемент или создает новый.When using operator[] to insert elements, the returned reference does not indicate whether an insertion is changing a pre-existing element or creating a new one. Функции-члены find и INSERT можно использовать, чтобы определить, существует ли элемент с указанным ключом перед вставкой.The member functions find and insert can be used to determine whether an element with a specified key is already present before an insertion.

Оператор =operator=

Присваивает concurrent_unordered_map этому объекту содержимое другого объекта.Assigns the contents of another concurrent_unordered_map object to this one. Этот метод не является типобезопасным в режиме параллелизма.This method is not concurrency-safe.

concurrent_unordered_map& operator= (const concurrent_unordered_map& _Umap);

concurrent_unordered_map& operator= (concurrent_unordered_map&& _Umap);

ПараметрыParameters

_Umap_Umap
Исходный объект concurrent_unordered_map.The source concurrent_unordered_map object.

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

Ссылка на этот concurrent_unordered_map объект.A reference to this concurrent_unordered_map object.

КомментарииRemarks

После удаления всех существующих элементов в параллельном векторе operator= либо копирует, либо перемещает содержимое _Umap в параллельный вектор.After erasing any existing elements a concurrent vector, operator= either copies or moves the contents of _Umap into the concurrent vector.

rehashrehash

Повторно создает хэш-таблицу.Rebuilds the hash table.

void rehash(size_type _Buckets);

ПараметрыParameters

_Buckets_Buckets
Необходимое количество сегментов.The desired number of buckets.

КомментарииRemarks

Функция-член устанавливает число сегментов не менее _Buckets и при необходимости перестраивает хэш-таблицу.The member function alters the number of buckets to be at least _Buckets and rebuilds the hash table as needed. Число сегментов должно быть степенью числа 2.The number of buckets must be a power of 2. Если не является степенью числа 2, она будет округляться до следующей самой крупной степени 2.If not a power of 2, it will be rounded up to the next largest power of 2.

Он вызывает исключение out_of_range , если количество сегментов недопустимо (0 или больше максимального количества сегментов).It throws an out_of_range exception if the number of buckets is invalid (either 0 or greater than the maximum number of buckets).

изменятьsize

Возвращает число элементов в этом параллельном контейнере.Returns the number of elements in this concurrent container. Данный метод безопасен в режиме параллелизма.This method is concurrency safe.

size_type size() const;

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

Число элементов в контейнере.The number of items in the container.

КомментарииRemarks

При наличии параллельных вставок число элементов в параллельном контейнере может измениться сразу после вызова этой функции даже до чтения возвращаемого значения.In the presence of concurrent inserts, the number of elements in the concurrent container may change immediately after calling this function, before the return value is even read.

позицииswap

Меняет местами содержимое двух объектов concurrent_unordered_map.Swaps the contents of two concurrent_unordered_map objects. Этот метод не является типобезопасным в режиме параллелизма.This method is not concurrency-safe.

void swap(concurrent_unordered_map& _Umap);

ПараметрыParameters

_Umap_Umap
Объект concurrent_unordered_map для обмена.The concurrent_unordered_map object to swap with.

unsafe_beginunsafe_begin

Возвращает итератор, который является первым элементом в этом контейнере для определенного контейнера.Returns an iterator to the first element in this container for a specific bucket.

local_iterator unsafe_begin(size_type _Bucket);

const_local_iterator unsafe_begin(size_type _Bucket) const;

ПараметрыParameters

_Bucket_Bucket
Индекс контейнера.The bucket index.

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

Итератор, указывающий на начало контейнера.An iterator pointing to the beginning of the bucket.

unsafe_bucketunsafe_bucket

Возвращает индекс контейнера, сопоставляемый с указанным ключом в этом контейнере.Returns the bucket index that a specific key maps to in this container.

size_type unsafe_bucket(const key_type& KVal) const;

ПараметрыParameters

квалKVal
Искомый ключ элемента.The element key being searched for.

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

Индекс контейнера для ключа в этом контейнере.The bucket index for the key in this container.

unsafe_bucket_countunsafe_bucket_count

Возвращает текущее количество контейнеров в этом контейнере.Returns the current number of buckets in this container.

size_type unsafe_bucket_count() const;

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

Текущее число контейнеров в этом контейнере.The current number of buckets in this container.

unsafe_bucket_sizeunsafe_bucket_size

Возвращает количество элементов в определенном контейнере этого контейнера.Returns the number of items in a specific bucket of this container.

size_type unsafe_bucket_size(size_type _Bucket);

ПараметрыParameters

_Bucket_Bucket
Контейнер для поиска.The bucket to search for.

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

Текущее число контейнеров в этом контейнере.The current number of buckets in this container.

unsafe_cbeginunsafe_cbegin

Возвращает итератор, который является первым элементом в этом контейнере для определенного контейнера.Returns an iterator to the first element in this container for a specific bucket.

const_local_iterator unsafe_cbegin(size_type _Bucket) const;

ПараметрыParameters

_Bucket_Bucket
Индекс контейнера.The bucket index.

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

Итератор, указывающий на начало контейнера.An iterator pointing to the beginning of the bucket.

unsafe_cendunsafe_cend

Возвращает итератор в позицию, которая завершилась после последнего элемента в определенном контейнере.Returns an iterator to the location succeeding the last element in a specific bucket.

const_local_iterator unsafe_cend(size_type _Bucket) const;

ПараметрыParameters

_Bucket_Bucket
Индекс контейнера.The bucket index.

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

Итератор, указывающий на начало контейнера.An iterator pointing to the beginning of the bucket.

unsafe_endunsafe_end

Возвращает итератор, который является последним элементом в этом контейнере для определенного контейнера.Returns an iterator to the last element in this container for a specific bucket.

local_iterator unsafe_end(size_type _Bucket);

const_local_iterator unsafe_end(size_type _Bucket) const;

ПараметрыParameters

_Bucket_Bucket
Индекс контейнера.The bucket index.

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

Итератор, указывающий на конец контейнера.An iterator pointing to the end of the bucket.

unsafe_eraseunsafe_erase

Удаляет элементы из concurrent_unordered_map указанных позиций.Removes elements from the concurrent_unordered_map at specified positions. Этот метод не является типобезопасным в режиме параллелизма.This method is not concurrency-safe.

iterator unsafe_erase(
    const_iterator _Where);

iterator unsafe_erase(
    const_iterator _Begin,
    const_iterator _End);

size_type unsafe_erase(
    const key_type& KVal);

ПараметрыParameters

_Where_Where
Положение итератора для удаления.The iterator position to erase from.

_Begin_Begin
Положение первого элемента в диапазоне элементов для удаления.The position of the first element in the range of elements to be erased.

_End_End
Положение первого элемента за пределами диапазона элементов для удаления.The position of the first element beyond the range of elements to be erased.

квалKVal
Значение ключа для удаления.The key value to erase.

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

Первые две функции-члена возвращают итератор, который обозначает первый элемент, находящийся за всеми удаленными элементами, или concurrent_unordered_map::end(), если такой элемент не существует.The first two member functions return an iterator that designates the first element remaining beyond any elements removed, or concurrent_unordered_map::end() if no such element exists. Третья функция-член возвращает число элементов, которые она удаляет.The third member function returns the number of elements it removes.

КомментарииRemarks

Первая функция-член удаляет элемент управляемой последовательности, указанный параметром _Where.The first member function removes the element of the controlled sequence pointed to by _Where. Вторая функция-член удаляет элементы в диапазоне [ _Begin , _End ).The second member function removes the elements in the range [ _Begin, _End).

Третья функция-член удаляет элементы в диапазоне, разделенном concurrent_unordered_map::equal_range (квал).The third member function removes the elements in the range delimited by concurrent_unordered_map::equal_range(KVal).

unsafe_max_bucket_countunsafe_max_bucket_count

Возвращает максимальное число контейнеров в этом контейнере.Returns the maximum number of buckets in this container.

size_type unsafe_max_bucket_count() const;

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

Максимальное число контейнеров в этом контейнере.The maximum number of buckets in this container.

См. также разделSee also

Пространство имен Concurrencyconcurrency Namespace
Параллельные контейнеры и объектыParallel Containers and Objects