Класс concurrent_vectorconcurrent_vector Class

Класс concurrent_vector представляет собой класс контейнера последовательности, обеспечивающий доступ к элементам в случайном порядке.The concurrent_vector class is a sequence container class that allows random access to any element. Позволяет параллельно-безопасно выполнять операции присоединения, получения доступа к элементу, доступа к итератору и обхода итератора.It 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 T, class _Ax>
class concurrent_vector: protected details::_Allocator_base<T,
    _Ax>,
private details::_Concurrent_vector_base_v4;

ПараметрыParameters

TT
Тип данных элементов, которые должны храниться в векторе.The data type of the elements to be stored in the vector.

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

ЭлементыMembers

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

ИмяName ОписаниеDescription
allocator_type Тип, представляющий класс распределителя для параллельного вектора.A type that represents the allocator class for the concurrent vector.
const_iterator Тип, предоставляющий итератор произвольного доступа, который может считывать const элемент в параллельном векторе.A type that provides a random-access iterator that can read a const element in a concurrent vector.
const_pointer Тип, предоставляющий указатель на const элемент в параллельном векторе.A type that provides a pointer to a const element in a concurrent vector.
const_reference Тип, предоставляющий ссылку на const элемент, хранящийся в параллельном векторе для чтения и выполнения const операций.A type that provides a reference to a const element stored in a concurrent vector for reading and performing const operations.
const_reverse_iterator Тип, предоставляющий итератор произвольного доступа, который может считывать любой const элемент в параллельном векторе.A type that provides a random-access iterator that can read any const element in the concurrent vector.
difference_type Тип, предоставляющий расстояние со знаком между двумя элементами в параллельном векторе.A type that provides the signed distance between two elements in a concurrent vector.
iterator Тип, предоставляющий итератор произвольного доступа, который может считывать любой элемент в параллельном векторе.A type that provides a random-access iterator that can read any element in a concurrent vector. Изменение элемента с помощью итератора не является типобезопасным.Modification of an element using the iterator is not concurrency-safe.
pointer Тип, предоставляющий указатель на элемент в параллельном векторе.A type that provides a pointer to an element in a concurrent vector.
reference Тип, предоставляющий ссылку на элемент, хранящийся в параллельном векторе.A type that provides a reference to an element stored in a concurrent vector.
reverse_iterator Тип, предоставляющий итератор произвольного доступа, который может считывать любой элемент в инвертированном параллельном векторе.A type that provides a random-access iterator that can read any element in a reversed concurrent vector. Изменение элемента с помощью итератора не является типобезопасным.Modification of an element using the iterator is not concurrency-safe.
size_type Тип, который подсчитывает количество элементов в параллельном векторе.A type that counts the number of elements in a concurrent vector.
value_type Тип, представляющий тип данных, хранящийся в параллельном векторе.A type that represents the data type stored in a concurrent vector.

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

nameName ОписаниеDescription
concurrent_vectorconcurrent_vector Перегружен.Overloaded. Конструирует параллельный вектор.Constructs a concurrent vector.
Деструктор ~ concurrent_vector~concurrent_vector Destructor Стирает все элементы и уничтожает этот параллельный вектор.Erases all elements and destroys this concurrent vector.

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

nameName ОписаниеDescription
assignassign Перегружен.Overloaded. Стирает элементы параллельного вектора и присваивает ему либо _N копии _Item , либо значения, указанные в диапазоне итератора [ _Begin , _End ).Erases the elements of the concurrent vector and assigns to it either _N copies of _Item, or values specified by the iterator range [ _Begin, _End). Этот метод не является типобезопасным в режиме параллелизма.This method is not concurrency-safe.
atat Перегружен.Overloaded. Предоставляет доступ к элементу по заданному индексу в параллельном векторе.Provides access to the element at the given index in the concurrent vector. Этот метод является типобезопасным для операций чтения, а также при увеличении вектора, пока вы уверены, что значение _Index меньше, чем размер параллельного вектора.This method is concurrency-safe for read operations, and also while growing the vector, as long as you have ensured that the value _Index is less than the size of the concurrent vector.
Назадback Перегружен.Overloaded. Возвращает ссылку или const ссылку на последний элемент в параллельном векторе.Returns a reference or a const reference to the last element in the concurrent vector. Если параллельный вектор пуст, возвращаемое значение не определено.If the concurrent vector is empty, the return value is undefined. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.
началеbegin Перегружен.Overloaded. Возвращает итератор типа iterator или const_iterator в начало параллельного вектора.Returns an iterator of type iterator or const_iterator to the beginning of the concurrent vector. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.
ресурсовcapacity Возвращает максимальный размер, до которого может увеличиваться параллельный вектор без выделения большего объема памяти.Returns the maximum size to which the concurrent vector can grow without having to allocate more memory. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.
cbegincbegin Возвращает итератор типа const_iterator на начало параллельного вектора.Returns an iterator of type const_iterator to the beginning of the concurrent vector. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.
cendcend Возвращает итератор типа const_iterator на конец параллельного вектора.Returns an iterator of type const_iterator to the end of the concurrent vector. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.
пустоclear Стирает все элементы в параллельном векторе.Erases all elements in the concurrent vector. Этот метод не является типобезопасным в режиме параллелизма.This method is not concurrency-safe.
crbegincrbegin Возвращает итератор типа const_reverse_iterator на начало параллельного вектора.Returns an iterator of type const_reverse_iterator to the beginning of the concurrent vector. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.
crendcrend Возвращает итератор типа const_reverse_iterator на конец параллельного вектора.Returns an iterator of type const_reverse_iterator to the end of the concurrent vector. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.
emptyempty Проверяет, является ли одновременный вектор пустым во время вызова этого метода.Tests if the concurrent vector is empty at the time this method is called. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.
endend Перегружен.Overloaded. Возвращает итератор типа iterator или const_iterator в конец параллельного вектора.Returns an iterator of type iterator or const_iterator to the end of the concurrent vector. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.
крышкуfront Перегружен.Overloaded. Возвращает ссылку или const ссылку на первый элемент в параллельном векторе.Returns a reference or a const reference to the first element in the concurrent vector. Если параллельный вектор пуст, возвращаемое значение не определено.If the concurrent vector is empty, the return value is undefined. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.
get_allocatorget_allocator Возвращает копию распределителя, используемую для создания параллельного вектора.Returns a copy of the allocator used to construct the concurrent vector. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.
grow_bygrow_by Перегружен.Overloaded. Увеличивает этот одновременный вектор по _Delta элементам.Grows this concurrent vector by _Delta elements. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.
grow_to_at_leastgrow_to_at_least Увеличивает этот одновременный вектор, пока он не содержит по меньшей мере _N элементы.Grows this concurrent vector until it has at least _N elements. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.
max_sizemax_size Возвращает максимальное количество элементов, которое может содержать параллельный вектор.Returns the maximum number of elements the concurrent vector can hold. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.
push_backpush_back Перегружен.Overloaded. Добавляет заданный элемент в конец параллельного вектора.Appends the given item to the end of the concurrent vector. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.
rbeginrbegin Перегружен.Overloaded. Возвращает итератор типа reverse_iterator или const_reverse_iterator в начало параллельного вектора.Returns an iterator of type reverse_iterator or const_reverse_iterator to the beginning of the concurrent vector. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.
rendrend Перегружен.Overloaded. Возвращает итератор типа reverse_iterator или const_reverse_iterator в конец параллельного вектора.Returns an iterator of type reverse_iterator or const_reverse_iterator to the end of the concurrent vector. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.
предназначенreserve Выделяет достаточно места для увеличения параллельного вектора до размера _N без необходимости выделять больше памяти позже.Allocates enough space to grow the concurrent vector to size _N without having to allocate more memory later. Этот метод не является типобезопасным в режиме параллелизма.This method is not concurrency-safe.
изменить размерresize Перегружен.Overloaded. Изменяет размер параллельного вектора на запрошенный размер, удаляя или добавляя элементы при необходимости.Changes the size of the concurrent vector to the requested size, deleting or adding elements as necessary. Этот метод не является типобезопасным в режиме параллелизма.This method is not concurrency-safe.
shrink_to_fitshrink_to_fit Сжимает внутреннее представление параллельного вектора, чтобы снизить фрагментацию и оптимизировать использование памяти.Compacts the internal representation of the concurrent vector to reduce fragmentation and optimize memory usage. Этот метод не является типобезопасным в режиме параллелизма.This method is not concurrency-safe.
sizesize Возвращает количество элементов в параллельном векторе.Returns the number of elements in the concurrent vector. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.
позицииswap Меняет местами содержимое двух одновременных векторов.Swaps the contents of two concurrent vectors. Этот метод не является типобезопасным в режиме параллелизма.This method is not concurrency-safe.

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

ИмяName ОписаниеDescription
станции[]operator[] Перегружен.Overloaded. Предоставляет доступ к элементу по заданному индексу в параллельном векторе.Provides access to the element at the given index in the concurrent vector. Этот метод является типобезопасным для операций чтения, а также при увеличении вектора, пока вы уверены, что значение _Index меньше, чем размер параллельного вектора.This method is concurrency-safe for read operations, and also while growing the vector, as long as the you have ensured that the value _Index is less than the size of the concurrent vector.
Оператор =operator= Перегружен.Overloaded. Присваивает concurrent_vector этому объекту содержимое другого объекта.Assigns the contents of another concurrent_vector object to this one. Этот метод не является типобезопасным в режиме параллелизма.This method is not concurrency-safe.

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

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

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

_Concurrent_vector_base_v4

_Allocator_base

concurrent_vector

ТребованияRequirements

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

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

назначатьassign

Стирает элементы параллельного вектора и присваивает ему либо _N копии _Item , либо значения, указанные в диапазоне итератора [ _Begin , _End ).Erases the elements of the concurrent vector and assigns to it either _N copies of _Item, or values specified by the iterator range [ _Begin, _End). Этот метод не является типобезопасным в режиме параллелизма.This method is not concurrency-safe.

void assign(
    size_type _N,
    const_reference _Item);

template<class _InputIterator>
void assign(_InputIterator _Begin,
    _InputIterator _End);

ПараметрыParameters

_InputIterator_InputIterator
Тип указанного итератора.The type of the specified iterator.

_N_N
Число элементов, копируемых в параллельный вектор.The number of items to copy into the concurrent vector.

_Item_Item
Ссылка на значение, используемое для заполнения параллельного вектора.Reference to a value used to fill the concurrent vector.

_Begin_Begin
Итератор на первый элемент исходного диапазона.An iterator to the first element of the source range.

_End_End
Итератор, который должен находиться за последним элементом исходного диапазона.An iterator to one past the last element of the source range.

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

assign не является типобезопасным.assign is not concurrency-safe. Необходимо убедиться, что никакие другие потоки не вызывают методы в параллельном векторе при вызове этого метода.You must ensure that no other threads are invoking methods on the concurrent vector when you call this method.

вat

Предоставляет доступ к элементу по заданному индексу в параллельном векторе.Provides access to the element at the given index in the concurrent vector. Этот метод является типобезопасным для операций чтения, а также при увеличении вектора, пока вы уверены, что значение _Index меньше, чем размер параллельного вектора.This method is concurrency-safe for read operations, and also while growing the vector, as long as you have ensured that the value _Index is less than the size of the concurrent vector.

reference at(size_type _Index);

const_reference at(size_type _Index) const;

ПараметрыParameters

_Index_Index
Индекс извлекаемого элемента.The index of the element to be retrieved.

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

Ссылка на элемент по заданному индексу.A reference to the item at the given index.

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

Версия функции at , которая возвращает const нессылочную, не может использоваться для параллельной записи в элемент из разных потоков.The version of the function at that returns a non- const reference cannot be used to concurrently write to the element from different threads. Для синхронизации одновременных операций чтения и записи с одним и тем же элементом данных следует использовать другой объект синхронизации.A different synchronization object should be used to synchronize concurrent read and write operations to the same data element.

Метод создает исключение, out_of_range Если _Index значение больше или равно размеру параллельного вектора, и range_error Если индекс предназначен для неработающей части вектора.The method throws out_of_range if _Index is greater than or equal to the size of the concurrent vector, and range_error if the index is for a broken portion of the vector. Дополнительные сведения о том, как вектор может стать недействительным, см. в разделе Parallel Containers and Objects.For details on how a vector can become broken, see Parallel Containers and Objects.

Назадback

Возвращает ссылку или const ссылку на последний элемент в параллельном векторе.Returns a reference or a const reference to the last element in the concurrent vector. Если параллельный вектор пуст, возвращаемое значение не определено.If the concurrent vector is empty, the return value is undefined. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.

reference back();

const_reference back() const;

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

Ссылка или const ссылка на последний элемент в параллельном векторе.A reference or a const reference to the last element in the concurrent vector.

beginbegin

Возвращает итератор типа iterator или const_iterator в начало параллельного вектора.Returns an iterator of type iterator or const_iterator to the beginning of the concurrent vector. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.

iterator begin();

const_iterator begin() const;

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

Итератор типа iterator или const_iterator на начало параллельного вектора.An iterator of type iterator or const_iterator to the beginning of the concurrent vector.

ресурсовcapacity

Возвращает максимальный размер, до которого может увеличиваться параллельный вектор без выделения большего объема памяти.Returns the maximum size to which the concurrent vector can grow without having to allocate more memory. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.

size_type capacity() const;

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

Максимальный размер, до которого может расти параллельный вектор без необходимости выделения дополнительной памяти.The maximum size to which the concurrent vector can grow without having to allocate more memory.

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

В отличие от стандартной библиотеки C++ vector , concurrent_vector объект не перемещает существующие элементы, если выделяет больше памяти.Unlike a C++ Standard Library vector, a concurrent_vector object does not move existing elements if it allocates more memory.

cbegincbegin

Возвращает итератор типа const_iterator на начало параллельного вектора.Returns an iterator of type const_iterator to the beginning of the concurrent vector. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.

const_iterator cbegin() const;

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

Итератор типа const_iterator на начало параллельного вектора.An iterator of type const_iterator to the beginning of the concurrent vector.

cendcend

Возвращает итератор типа const_iterator на конец параллельного вектора.Returns an iterator of type const_iterator to the end of the concurrent vector. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.

const_iterator cend() const;

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

Итератор типа const_iterator на конец параллельного вектора.An iterator of type const_iterator to the end of the concurrent vector.

открытымclear

Стирает все элементы в параллельном векторе.Erases all elements in the concurrent vector. Этот метод не является типобезопасным в режиме параллелизма.This method is not concurrency-safe.

void clear();

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

clear не является типобезопасным.clear is not concurrency-safe. Необходимо убедиться, что никакие другие потоки не вызывают методы в параллельном векторе при вызове этого метода.You must ensure that no other threads are invoking methods on the concurrent vector when you call this method. clear не освобождает внутренние массивы.clear does not free internal arrays. Чтобы освободить внутренние массивы, вызовите функцию shrink_to_fit после clear .To free internal arrays, call the function shrink_to_fit after clear.

concurrent_vectorconcurrent_vector

Конструирует параллельный вектор.Constructs a concurrent vector.

explicit concurrent_vector(
    const allocator_type& _Al = allocator_type());

concurrent_vector(
    const concurrent_vector& _Vector);

template<class M>
concurrent_vector(
    const concurrent_vector<T,
    M>& _Vector,
    const allocator_type& _Al = allocator_type());

concurrent_vector(
    concurrent_vector&& _Vector);

explicit concurrent_vector(
    size_type _N);

concurrent_vector(
    size_type _N,
    const_reference _Item,
    const allocator_type& _Al = allocator_type());

template<class _InputIterator>
concurrent_vector(_InputIterator _Begin,
    _InputIterator _End,
    const allocator_type& _Al = allocator_type());

ПараметрыParameters

MM
Тип распределителя исходного вектора.The allocator type of the source vector.

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

_Al_Al
Класс распределителя для использования с данным объектом.The allocator class to use with this object.

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

_N_N
Начальная производительность объекта concurrent_vector.The initial capacity of the concurrent_vector object.

_Item_Item
Значение элементов в созданном объекте.The value of elements in the constructed object.

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

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

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

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

Первый конструктор задает пустой Исходный вектор и явно указывает тип распределителя.The first constructor specify an empty initial vector and explicitly specifies the allocator type. для использования.to be used.

Второй и третий конструкторы указывают копию параллельного вектора _Vector .The second and third constructors specify a copy of the concurrent vector _Vector.

Четвертый конструктор определяет перемещение параллельного вектора _Vector.The fourth constructor specifies a move of the concurrent vector _Vector.

Пятый конструктор указывает повторение указанного числа ( _N ) элементов значения по умолчанию для класса T .The fifth constructor specifies a repetition of a specified number ( _N) of elements of the default value for class T.

Шестой конструктор задает повторение ( _N ) элементов value _Item .The sixth constructor specifies a repetition of ( _N) elements of value _Item.

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

~ concurrent_vector~concurrent_vector

Стирает все элементы и уничтожает этот параллельный вектор.Erases all elements and destroys this concurrent vector.

~concurrent_vector();

crbegincrbegin

Возвращает итератор типа const_reverse_iterator на начало параллельного вектора.Returns an iterator of type const_reverse_iterator to the beginning of the concurrent vector. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.

const_reverse_iterator crbegin() const;

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

Итератор типа const_reverse_iterator на начало параллельного вектора.An iterator of type const_reverse_iterator to the beginning of the concurrent vector.

crendcrend

Возвращает итератор типа const_reverse_iterator на конец параллельного вектора.Returns an iterator of type const_reverse_iterator to the end of the concurrent vector. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.

const_reverse_iterator crend() const;

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

Итератор типа const_reverse_iterator на конец параллельного вектора.An iterator of type const_reverse_iterator to the end of the concurrent vector.

указаноempty

Проверяет, является ли одновременный вектор пустым во время вызова этого метода.Tests if the concurrent vector is empty at the time this method is called. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.

bool empty() const;

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

true значение, если вектор был пустым в момент вызова функции, false в противном случае.true if the vector was empty at the moment the function was called, false otherwise.

endend

Возвращает итератор типа iterator или const_iterator в конец параллельного вектора.Returns an iterator of type iterator or const_iterator to the end of the concurrent vector. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.

iterator end();

const_iterator end() const;

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

Итератор типа iterator или const_iterator до конца параллельного вектора.An iterator of type iterator or const_iterator to the end of the concurrent vector.

крышкуfront

Возвращает ссылку или const ссылку на первый элемент в параллельном векторе.Returns a reference or a const reference to the first element in the concurrent vector. Если параллельный вектор пуст, возвращаемое значение не определено.If the concurrent vector is empty, the return value is undefined. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.

reference front();

const_reference front() const;

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

Ссылка или const ссылка на первый элемент в параллельном векторе.A reference or a const reference to the first element in the concurrent vector.

get_allocatorget_allocator

Возвращает копию распределителя, используемую для создания параллельного вектора.Returns a copy of the allocator used to construct the concurrent vector. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.

allocator_type get_allocator() const;

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

Копия распределителя, используемая для создания concurrent_vector объекта.A copy of the allocator used to construct the concurrent_vector object.

grow_bygrow_by

Увеличивает этот одновременный вектор по _Delta элементам.Grows this concurrent vector by _Delta elements. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.

iterator grow_by(
    size_type _Delta);

iterator grow_by(
    size_type _Delta,
    const_reference _Item);

ПараметрыParameters

_Delta_Delta
Число элементов, добавляемых к объекту.The number of elements to append to the object.

_Item_Item
Значение для инициализации новых элементов с помощью.The value to initialize the new elements with.

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

Итератор, к которому добавляется первый элемент.An iterator to first item appended.

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

Если _Item параметр не указан, то создаются новые элементы по умолчанию.If _Item is not specified, the new elements are default constructed.

grow_to_at_leastgrow_to_at_least

Увеличивает этот одновременный вектор, пока он не содержит по меньшей мере _N элементы.Grows this concurrent vector until it has at least _N elements. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.

iterator grow_to_at_least(size_type _N);

ПараметрыParameters

_N_N
Новый минимальный размер concurrent_vector объекта.The new minimum size for the concurrent_vector object.

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

Итератор, указывающий на начало добавленной последовательности или на элемент по индексу, _N Если элементы не были добавлены.An iterator that points to beginning of appended sequence, or to the element at index _N if no elements were appended.

max_sizemax_size

Возвращает максимальное количество элементов, которое может содержать параллельный вектор.Returns the maximum number of elements the concurrent vector can hold. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.

size_type max_size() const;

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

Максимальное число элементов, которое concurrent_vector может хранить объект.The maximum number of elements the concurrent_vector object can hold.

Оператор =operator=

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

concurrent_vector& operator= (
    const concurrent_vector& _Vector);

template<class M>
concurrent_vector& operator= (
    const concurrent_vector<T, M>& _Vector);

concurrent_vector& operator= (
    concurrent_vector&& _Vector);

ПараметрыParameters

MM
Тип распределителя исходного вектора.The allocator type of the source vector.

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

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

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

operator[]operator[]

Предоставляет доступ к элементу по заданному индексу в параллельном векторе.Provides access to the element at the given index in the concurrent vector. Этот метод является типобезопасным для операций чтения, а также при увеличении вектора, пока вы уверены, что значение _Index меньше, чем размер параллельного вектора.This method is concurrency-safe for read operations, and also while growing the vector, as long as the you have ensured that the value _Index is less than the size of the concurrent vector.

reference operator[](size_type _index);

const_reference operator[](size_type _index) const;

ПараметрыParameters

_Index_Index
Индекс извлекаемого элемента.The index of the element to be retrieved.

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

Ссылка на элемент по заданному индексу.A reference to the item at the given index.

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

Версия operator [] , которая возвращает const нессылающийся, не может использоваться для параллельной записи в элемент из разных потоков.The version of operator [] that returns a non- const reference cannot be used to concurrently write to the element from different threads. Для синхронизации одновременных операций чтения и записи с одним и тем же элементом данных следует использовать другой объект синхронизации.A different synchronization object should be used to synchronize concurrent read and write operations to the same data element.

Проверка границ не выполняется, чтобы гарантировать, что _Index является допустимым индексом в параллельном векторе.No bounds checking is performed to ensure that _Index is a valid index into the concurrent vector.

push_backpush_back

Добавляет заданный элемент в конец параллельного вектора.Appends the given item to the end of the concurrent vector. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.

iterator push_back(const_reference _Item);

iterator push_back(T&& _Item);

ПараметрыParameters

_Item_Item
Добавляемое значение.The value to be appended.

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

Итератор на добавленный элемент.An iterator to item appended.

rbeginrbegin

Возвращает итератор типа reverse_iterator или const_reverse_iterator в начало параллельного вектора.Returns an iterator of type reverse_iterator or const_reverse_iterator to the beginning of the concurrent vector. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.

reverse_iterator rbegin();

const_reverse_iterator rbegin() const;

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

Итератор типа reverse_iterator или const_reverse_iterator на начало параллельного вектора.An iterator of type reverse_iterator or const_reverse_iterator to the beginning of the concurrent vector.

rendrend

Возвращает итератор типа reverse_iterator или const_reverse_iterator в конец параллельного вектора.Returns an iterator of type reverse_iterator or const_reverse_iterator to the end of the concurrent vector. Этот метод является типобезопасным в режиме параллелизма.This method is concurrency-safe.

reverse_iterator rend();

const_reverse_iterator rend() const;

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

Итератор типа reverse_iterator или const_reverse_iterator до конца параллельного вектора.An iterator of type reverse_iterator or const_reverse_iterator to the end of the concurrent vector.

предназначенreserve

Выделяет достаточно места для увеличения параллельного вектора до размера _N без необходимости выделять больше памяти позже.Allocates enough space to grow the concurrent vector to size _N without having to allocate more memory later. Этот метод не является типобезопасным в режиме параллелизма.This method is not concurrency-safe.

void reserve(size_type _N);

ПараметрыParameters

_N_N
Количество элементов, для которых резервируется место.The number of elements to reserve space for.

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

reserve не является типобезопасным.reserve is not concurrency-safe. Необходимо убедиться, что никакие другие потоки не вызывают методы в параллельном векторе при вызове этого метода.You must ensure that no other threads are invoking methods on the concurrent vector when you call this method. Емкость параллельного вектора после возврата метода может быть больше запрошенного резервирования.The capacity of the concurrent vector after the method returns may be bigger than the requested reservation.

изменить размерresize

Изменяет размер параллельного вектора на запрошенный размер, удаляя или добавляя элементы при необходимости.Changes the size of the concurrent vector to the requested size, deleting or adding elements as necessary. Этот метод не является типобезопасным в режиме параллелизма.This method is not concurrency-safe.

void resize(
    size_type _N);

void resize(
    size_type _N,
    const T& val);

ПараметрыParameters

_N_N
Новый размер concurrent_vector.The new size of the concurrent_vector.

Valval
Значение новых элементов, добавленных в вектор, если новый размер больше исходного.The value of new elements added to the vector if the new size is larger than the original size. Если значение не указано, новым объектам присваивается значение по умолчанию для их типа.If the value is omitted, the new objects are assigned the default value for their type.

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

Если размер контейнера меньше запрошенного размера, элементы добавляются в вектор до тех пор, пока не достигнет запрошенного размера.If the size of the container is less than the requested size, elements are added to the vector until it reaches the requested size. Если размер контейнера превышает запрошенный размер, то элементы, ближайшие к концу контейнера, удаляются до тех пор, пока контейнер не достигнет размера _N .If the size of the container is larger than the requested size, the elements closest to the end of the container are deleted until the container reaches the size _N. Если текущий размер контейнера совпадает с запрошенным, никакие действия не выполняются.If the present size of the container is the same as the requested size, no action is taken.

resize не является типобезопасным.resize is not concurrency safe. Необходимо убедиться, что никакие другие потоки не вызывают методы в параллельном векторе при вызове этого метода.You must ensure that no other threads are invoking methods on the concurrent vector when you call this method.

shrink_to_fitshrink_to_fit

Сжимает внутреннее представление параллельного вектора, чтобы снизить фрагментацию и оптимизировать использование памяти.Compacts the internal representation of the concurrent vector to reduce fragmentation and optimize memory usage. Этот метод не является типобезопасным в режиме параллелизма.This method is not concurrency-safe.

void shrink_to_fit();

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

Этот метод будет внутренним образом перераспределять элементы перемещения памяти вокруг, делая все итераторы недействительными.This method will internally re-allocate memory move elements around, invalidating all the iterators. shrink_to_fit не является типобезопасным.shrink_to_fit is not concurrency-safe. Необходимо убедиться, что никакие другие потоки не вызывают методы в параллельном векторе при вызове этой функции.You must ensure that no other threads are invoking methods on the concurrent vector when you call this function.

изменятьsize

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

size_type size() const;

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

Число элементов в этом concurrent_vector объекте.The number of elements in this concurrent_vector object.

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

Возвращаемый размер гарантирует включение всех элементов, добавленных вызовами функции push_back , или увеличение операций, завершенных до вызова этого метода.The returned size is guaranteed to include all elements appended by calls to the function push_back, or grow operations that have completed prior to invoking this method. Однако он также может включать элементы, которые выделены, но по-прежнему находятся в процессе создания параллельных вызовов любого из методов роста.However, it may also include elements that are allocated but still under construction by concurrent calls to any of the growth methods.

позицииswap

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

void swap(concurrent_vector& _Vector);

ПараметрыParameters

_Vector_Vector
Объект concurrent_vector для обмена содержимым.The concurrent_vector object to swap contents with.

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

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