Поделиться через


Класс concurrent_vector

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

template<
   typename _Ty,
   class _Ax
>
class concurrent_vector: protected details::_Allocator_base<_Ty, _Ax>, private details::_Concurrent_vector_base_v4;

Параметры

  • _Ty
    Тип данных элементов, хранимых в векторе.

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

Члены

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

Имя

Описание

allocator_type

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

const_iterator

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

const_pointer

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

const_reference

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

const_reverse_iterator

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

difference_type

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

iterator

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

pointer

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

reference

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

reverse_iterator

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

size_type

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

value_type

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

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

Имя

Описание

Конструктор concurrent_vector::concurrent_vector

Перегружен. Создает параллельный вектор.

Деструктор concurrent_vector::~concurrent_vector

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

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

Имя

Описание

Метод concurrent_vector::assign

Перегружен. Удаляет элементы параллельного вектор и присваивает ему либо _N копий _Item или значения, заданные диапазоном итератора [_Begin, _End). Данный метод не безопасен в режиме параллелизма.

Метод concurrent_vector::at

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

Метод concurrent_vector::back

Перегружен. Возвращает ссылку или ссылка const на последний элемент в параллельном векторе. Если параллельный вектор пуст, возвращаемое значение не определено. Данный метод безопасен в режиме параллелизма.

Метод concurrent_vector::begin

Перегружен. Возвращает итератор типа iterator или const_iterator к началу параллельного вектора. Данный метод безопасен в режиме параллелизма.

Метод concurrent_vector::capacity

Возвращает максимальный размер, до которого может расти параллельный вектор без необходимости выделить больше памяти. Данный метод безопасен в режиме параллелизма.

Метод concurrent_vector::cbegin

Возвращает итератор типа const_iterator к началу параллельного вектора. Данный метод безопасен в режиме параллелизма.

Метод concurrent_vector::cend

Возвращает итератор типа const_iterator к концу параллельного вектора. Данный метод безопасен в режиме параллелизма.

Метод concurrent_vector::clear

Удаляет все элементы в параллельном векторе. Данный метод не безопасен в режиме параллелизма.

Метод concurrent_vector::crbegin

Возвращает итератор типа const_reverse_iterator к началу параллельного вектора. Данный метод безопасен в режиме параллелизма.

Метод concurrent_vector::crend

Возвращает итератор типа const_reverse_iterator к концу параллельного вектора. Данный метод безопасен в режиме параллелизма.

Метод concurrent_vector::empty

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

Метод concurrent_vector::end

Перегружен. Возвращает итератор типа iterator или const_iterator к концу параллельного вектора. Данный метод безопасен в режиме параллелизма.

Метод concurrent_vector::front

Перегружен. Возвращает ссылку или ссылка const на первый элемент в параллельном векторе. Если параллельный вектор пуст, возвращаемое значение не определено. Данный метод безопасен в режиме параллелизма.

Метод concurrent_vector::get_allocator

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

Метод concurrent_vector::grow_by

Перегружен. Увеличивает данный параллельный вектор на _Delta элементов. Данный метод безопасен в режиме параллелизма.

Метод concurrent_vector::grow_to_at_least

Увеличивает данный параллельный вектор до тех пор, пока он не имеет по крайней мере _N элементов. Данный метод безопасен в режиме параллелизма.

Метод concurrent_vector::max_size

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

Метод concurrent_vector::push_back

Добавляет заданный элемент в конец параллельного вектор. Данный метод безопасен в режиме параллелизма.

Метод concurrent_vector::rbegin

Перегружен. Возвращает итератор типа reverse_iterator или const_reverse_iterator к началу параллельного вектора. Данный метод безопасен в режиме параллелизма.

Метод concurrent_vector::rend

Перегружен. Возвращает итератор типа reverse_iterator или const_reverse_iterator к концу параллельного вектора. Данный метод безопасен в режиме параллелизма.

Метод concurrent_vector::reserve

Выделяет достаточно места для увеличения параллельного вектора до размера _N без необходимости выделить больше памяти позднее. Данный метод не безопасен в режиме параллелизма.

Метод concurrent_vector::resize

Перегружен. Изменение размера параллельного вектора на запрошенный размер, удаляя или добавляя элементов при необходимости. Данный метод не безопасен в режиме параллелизма.

Метод concurrent_vector::shrink_to_fit

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

Метод concurrent_vector::size

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

Метод concurrent_vector::swap

Меняет местами содержимое двух параллельных векторов. Данный метод не безопасен в режиме параллелизма.

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

Имя

Описание

Оператор concurrent_vector::operator[]

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

Оператор concurrent_vector::operator=

Перегружен. Назначает содержимое другого объекта concurrent_vector данному. Данный метод не безопасен в режиме параллелизма.

Заметки

Подробные сведения о классе concurrent_vector содержатся в разделе Параллельные контейнеры и объекты.

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

_Allocator_base

_Concurrent_vector_base_v4

concurrent_vector

Требования

Заголовок: concurrent_vector.h

Пространство имен: Concurrency

См. также

Ссылки

Пространство имен Concurrency

Основные понятия

Параллельные контейнеры и объекты