concurrent_vector-Klasse
Die concurrent_vector
-Klasse ist eine Sequenzcontainerklasse, die zufälligen Zugriff auf jedes Element zulässt. Sie aktiviert parallelitätssichere Operationen für Anfügen, Elementzugriff, Iteratorzugriff und Iteratordurchlauf. Hier sind Parallelitätssichere Zeiger oder Iteratoren immer gültig. Es ist keine Garantie für die Elementinitialisierung oder eine bestimmte Traversalreihenfolge.
Syntax
template<typename T, class _Ax>
class concurrent_vector: protected details::_Allocator_base<T,
_Ax>,
private details::_Concurrent_vector_base_v4;
Parameter
T
Der Datentyp der Elemente, die im Vektor gespeichert werden sollen.
_Axt
Der Typ, der das gespeicherte Zuweisungsobjekt darstellt, das Details zur Speicherbelegung und Aufhebung der Speicherbelegung für den gleichzeitigen Vektor kapselt. Dieses Argument ist optional, und der Standardwert ist allocator<T>
.
Member
Öffentliche Typedefs
Name | Beschreibung |
---|---|
allocator_type |
Ein Typ, der die Allocatorklasse für den gleichzeitigen Vektor darstellt. |
const_iterator |
Ein Typ, der einen Iterator mit wahlfreiem Zugriff bereitstellt, der ein const Element in einem gleichzeitigen Vektor lesen kann. |
const_pointer |
Ein Typ, der einen Zeiger auf ein const Element in einem gleichzeitigen Vektor bereitstellt. |
const_reference |
Ein Typ, der einen Verweis auf ein const Element bereitstellt, das in einem gleichzeitigen Vektor zum Lesen und Ausführen von const Vorgängen gespeichert ist. |
const_reverse_iterator |
Ein Typ, der einen Iterator mit wahlfreiem Zugriff bereitstellt, der jedes const Element im gleichzeitigen Vektor lesen kann. |
difference_type |
Ein Typ, der den signierten Abstand zwischen zwei Elementen in einem gleichzeitigen Vektor bereitstellt. |
iterator |
Ein Typ, der einen Iterator mit wahlfreiem Zugriff bereitstellt, der jedes Element in einem gleichzeitigen Vektor lesen kann. Die Änderung eines Elements mit dem Iterator ist nicht parallel. |
pointer |
Ein Typ, der einen Zeiger auf ein Element in einem gleichzeitigen Vektor bereitstellt. |
reference |
Ein Typ, der einen Verweis auf ein Element bereitstellt, das in einem gleichzeitigen Vektor gespeichert ist. |
reverse_iterator |
Ein Typ, der einen Iterator mit wahlfreiem Zugriff bereitstellt, der jedes Element in einem umgekehrten gleichzeitigen Vektor lesen kann. Die Änderung eines Elements mit dem Iterator ist nicht parallel. |
size_type |
Ein Typ, der die Anzahl der Elemente in einem gleichzeitigen Vektor zählt. |
value_type |
Ein Typ, der den Datentyp darstellt, der in einem gleichzeitigen Vektor gespeichert ist. |
Öffentliche Konstruktoren
Name | Beschreibung |
---|---|
concurrent_vector | Überladen. Erstellt einen gleichzeitigen Vektor. |
~concurrent_vector Destruktor | Löscht alle Elemente und zerstört diesen gleichzeitigen Vektor. |
Öffentliche Methoden
Name | Beschreibung |
---|---|
assign | Überladen. Löscht die Elemente des gleichzeitigen Vektors und weist ihm entweder _N Kopien von _Item oder Werte zu, die vom Iteratorbereich [ _Begin , _End ). Diese Methode ist nicht nebenläufigkeitssicher. |
at | Überladen. Ermöglicht den Zugriff auf das Element im angegebenen Index im gleichzeitigen Vektor. Diese Methode ist für Lesevorgänge gleichzeitig sicher und auch beim Vergrößern des Vektors, solange Sie sichergestellt haben, dass der Wert _Index kleiner als die Größe des gleichzeitigen Vektors ist. |
Rückseite | Überladen. Gibt einen Verweis oder einen const Verweis auf das letzte Element im gleichzeitigen Vektor zurück. Wenn der gleichzeitige Vektor leer ist, ist der Rückgabewert nicht definiert. Diese Methode ist nebenläufigkeitssicher. |
begin | Überladen. Gibt einen Iterator vom Typ iterator oder const_iterator an den Anfang des gleichzeitigen Vektors zurück. Diese Methode ist nebenläufigkeitssicher. |
Kapazität | Gibt die maximale Größe zurück, auf die der gleichzeitige Vektor wachsen kann, ohne mehr Arbeitsspeicher zuweisen zu müssen. Diese Methode ist nebenläufigkeitssicher. |
cbegin | Gibt einen Iterator vom Typ const_iterator an den Anfang des gleichzeitigen Vektors zurück. Diese Methode ist nebenläufigkeitssicher. |
cend | Gibt einen Iterator vom Typ const_iterator bis zum Ende des gleichzeitigen Vektors zurück. Diese Methode ist nebenläufigkeitssicher. |
clear | Löscht alle Elemente im gleichzeitigen Vektor. Diese Methode ist nicht nebenläufigkeitssicher. |
crbegin | Gibt einen Iterator vom Typ const_reverse_iterator an den Anfang des gleichzeitigen Vektors zurück. Diese Methode ist nebenläufigkeitssicher. |
crend | Gibt einen Iterator vom Typ const_reverse_iterator bis zum Ende des gleichzeitigen Vektors zurück. Diese Methode ist nebenläufigkeitssicher. |
empty | Testet, ob der gleichzeitige Vektor zum Zeitpunkt des Aufrufs dieser Methode leer ist. Diese Methode ist nebenläufigkeitssicher. |
end | Überladen. Gibt einen Iterator vom Typ iterator oder const_iterator an das Ende des gleichzeitigen Vektors zurück. Diese Methode ist nebenläufigkeitssicher. |
Vorderseite | Überladen. Gibt einen Verweis oder einen const Verweis auf das erste Element im gleichzeitigen Vektor zurück. Wenn der gleichzeitige Vektor leer ist, ist der Rückgabewert nicht definiert. Diese Methode ist nebenläufigkeitssicher. |
get_allocator | Gibt eine Kopie des Allocators zurück, der zum Konstruieren des gleichzeitigen Vektors verwendet wird. Diese Methode ist nebenläufigkeitssicher. |
grow_by | Überladen. Wächst dieser gleichzeitige Vektor nach _Delta Elementen. Diese Methode ist nebenläufigkeitssicher. |
grow_to_at_least | Wächst dieser gleichzeitige Vektor, bis er mindestens _N Elemente enthält. Diese Methode ist nebenläufigkeitssicher. |
max_size | Gibt die maximale Anzahl von Elementen zurück, die der gleichzeitige Vektor enthalten kann. Diese Methode ist nebenläufigkeitssicher. |
push_back | Überladen. Fügt das angegebene Element am Ende des gleichzeitigen Vektors an. Diese Methode ist nebenläufigkeitssicher. |
rbegin | Überladen. Gibt einen Iterator vom Typ reverse_iterator oder const_reverse_iterator an den Anfang des gleichzeitigen Vektors zurück. Diese Methode ist nebenläufigkeitssicher. |
rend | Überladen. Gibt einen Iterator vom Typ reverse_iterator oder const_reverse_iterator an das Ende des gleichzeitigen Vektors zurück. Diese Methode ist nebenläufigkeitssicher. |
reserve | Weist genügend Speicherplatz zu, um die Größe _N des gleichzeitigen Vektors zu vergrößern, ohne später mehr Arbeitsspeicher zuweisen zu müssen. Diese Methode ist nicht nebenläufigkeitssicher. |
resize | Überladen. Ändert die Größe des gleichzeitigen Vektors in die angeforderte Größe, Lösch- oder Hinzufügen von Elementen nach Bedarf. Diese Methode ist nicht nebenläufigkeitssicher. |
shrink_to_fit | Komprimiert die interne Darstellung des gleichzeitigen Vektors, um die Fragmentierung zu reduzieren und die Speicherauslastung zu optimieren. Diese Methode ist nicht nebenläufigkeitssicher. |
size | Gibt die Anzahl der Elemente im gleichzeitigen Vektor zurück. Diese Methode ist nebenläufigkeitssicher. |
swap | Tauscht den Inhalt von zwei gleichzeitigen Vektoren. Diese Methode ist nicht nebenläufigkeitssicher. |
Öffentliche Operatoren
Name | Beschreibung |
---|---|
operator[] | Überladen. Ermöglicht den Zugriff auf das Element im angegebenen Index im gleichzeitigen Vektor. Diese Methode ist für Lesevorgänge gleichzeitig sicher und auch beim Vergrößern des Vektors, solange Sie sichergestellt haben, dass der Wert _Index kleiner als die Größe des gleichzeitigen Vektors ist. |
operator= | Überladen. Weist den Inhalt eines anderen concurrent_vector -Objekts diesem Objekt zu. Diese Methode ist nicht nebenläufigkeitssicher. |
Hinweise
Ausführliche Informationen zur concurrent_vector
Klasse finden Sie unter Parallel Containers and Objects.
Vererbungshierarchie
_Concurrent_vector_base_v4
_Allocator_base
concurrent_vector
Anforderungen
Kopfzeile: concurrent_vector.h
Namespace: Parallelität
Zuweisen
Löscht die Elemente des gleichzeitigen Vektors und weist ihm entweder _N
Kopien von _Item
oder Werte zu, die vom Iteratorbereich [ _Begin
, _End
). Diese Methode ist nicht nebenläufigkeitssicher.
void assign(
size_type _N,
const_reference _Item);
template<class _InputIterator>
void assign(_InputIterator _Begin,
_InputIterator _End);
Parameter
_InputIterator
Der Typ des angegebenen Iterators.
_N
Die Anzahl der Elemente, die in den gleichzeitigen Vektor kopiert werden sollen.
_Artikel
Bezug auf einen Wert, der zum Ausfüllen des gleichzeitigen Vektors verwendet wird.
_Anfangen
Ein Iterator für das erste Element des Quellbereichs.
_Ende
Ein Iterator auf eins über das letzte Element des Quellbereichs.
Hinweise
assign
ist nicht gleichzeitig sicher. Sie müssen sicherstellen, dass beim Aufrufen dieser Methode keine anderen Threads Methoden für den gleichzeitigen Vektor aufrufen.
at
Ermöglicht den Zugriff auf das Element im angegebenen Index im gleichzeitigen Vektor. Diese Methode ist für Lesevorgänge gleichzeitig sicher und auch beim Vergrößern des Vektors, solange Sie sichergestellt haben, dass der Wert _Index
kleiner als die Größe des gleichzeitigen Vektors ist.
reference at(size_type _Index);
const_reference at(size_type _Index) const;
Parameter
_Index
Der Index des abzurufenden Elements.
Rückgabewert
Ein Verweis auf das Element im angegebenen Index.
Hinweise
Die Version der Funktion at
, die einen Nichtverweis const
zurückgibt, kann nicht verwendet werden, um gleichzeitig in das Element aus verschiedenen Threads zu schreiben. Ein anderes Synchronisierungsobjekt sollte verwendet werden, um gleichzeitige Lese- und Schreibvorgänge mit demselben Datenelement zu synchronisieren.
Die Methode löst aus, wenn _Index
sie größer oder gleich der Größe des gleichzeitigen Vektors out_of_range
ist und range_error
wenn der Index für einen fehlerhaften Teil des Vektors gilt. Ausführliche Informationen dazu, wie ein Vektor beschädigt werden kann, finden Sie unter parallele Container und Objekte.
back (Zurück)
Gibt einen Verweis oder einen const
Verweis auf das letzte Element im gleichzeitigen Vektor zurück. Wenn der gleichzeitige Vektor leer ist, ist der Rückgabewert nicht definiert. Diese Methode ist nebenläufigkeitssicher.
reference back();
const_reference back() const;
Rückgabewert
Ein Verweis oder ein const
Verweis auf das letzte Element im gleichzeitigen Vektor.
begin
Gibt einen Iterator vom Typ iterator
oder const_iterator
an den Anfang des gleichzeitigen Vektors zurück. Diese Methode ist nebenläufigkeitssicher.
iterator begin();
const_iterator begin() const;
Rückgabewert
Ein Iterator vom Typ iterator
oder const_iterator
bis zum Anfang des gleichzeitigen Vektors.
Kapazität
Gibt die maximale Größe zurück, auf die der gleichzeitige Vektor wachsen kann, ohne mehr Arbeitsspeicher zuweisen zu müssen. Diese Methode ist nebenläufigkeitssicher.
size_type capacity() const;
Rückgabewert
Die maximale Größe, auf die der gleichzeitige Vektor wachsen kann, ohne mehr Arbeitsspeicher zuweisen zu müssen.
Hinweise
Im Gegensatz zu einer C++-Standardbibliothek vector
verschet ein concurrent_vector
Objekt vorhandene Elemente nicht, wenn es mehr Arbeitsspeicher zuweist.
cbegin
Gibt einen Iterator vom Typ const_iterator
an den Anfang des gleichzeitigen Vektors zurück. Diese Methode ist nebenläufigkeitssicher.
const_iterator cbegin() const;
Rückgabewert
Ein Iterator vom Typ const_iterator
bis zum Anfang des gleichzeitigen Vektors.
cend
Gibt einen Iterator vom Typ const_iterator
bis zum Ende des gleichzeitigen Vektors zurück. Diese Methode ist nebenläufigkeitssicher.
const_iterator cend() const;
Rückgabewert
Ein Iterator vom Typ const_iterator
bis zum Ende des gleichzeitigen Vektors.
clear
Löscht alle Elemente im gleichzeitigen Vektor. Diese Methode ist nicht nebenläufigkeitssicher.
void clear();
Hinweise
clear
ist nicht gleichzeitig sicher. Sie müssen sicherstellen, dass beim Aufrufen dieser Methode keine anderen Threads Methoden für den gleichzeitigen Vektor aufrufen. clear
keine internen Arrays frei. Rufen Sie zum Freigeben interner Arrays die Funktion shrink_to_fit
nach clear
.
concurrent_vector
Erstellt einen gleichzeitigen Vektor.
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());
Parameter
M
Der allocator-Typ des Quellvektors.
_InputIterator
Der Typ des Eingabeiterators.
_Al
Die mit diesem Objekt zu verwendende Zuweisungsklasse.
_Vektor
Das concurrent_vector
-Quellobjekt, aus dem Elemente kopiert oder verschoben werden sollen.
_N
Die Anfangskapazität des concurrent_vector
-Objekts.
_Artikel
Der Wert der Elemente im erstellten Objekt.
_Anfangen
Die Position des ersten Elements in dem zu kopierenden Elementbereich.
_Ende
Die Position des ersten Elements nach dem zu kopierenden Elementbereich.
Hinweise
Von allen Konstruktoren wird ein _Al
-Zuweisungsobjekt gespeichert und der Vektor initialisiert.
Der erste Konstruktor gibt einen leeren Anfangsvektor an und gibt explizit den Allocatortyp an. zu verwenden.
Die zweiten und dritten Konstruktoren geben eine Kopie des parallel ausgeführten _Vector
-Vektors an.
Der vierte Konstruktor gibt eine Verschiebung des gleichzeitigen _Vector
-Vektors an.
Der fünfte Konstruktor gibt eine Wiederholung einer angegebenen Zahl ( _N
) von Elementen des Standardwerts für die Klasse T
an.
Der sechste Konstruktor gibt eine Wiederholung von ( _N
) Elementen des Werts _Item
an.
Der letzte Konstruktor gibt werte an, die vom Iteratorbereich [ _Begin
, ). _End
~concurrent_vector
Löscht alle Elemente und zerstört diesen gleichzeitigen Vektor.
~concurrent_vector();
crbegin
Gibt einen Iterator vom Typ const_reverse_iterator
an den Anfang des gleichzeitigen Vektors zurück. Diese Methode ist nebenläufigkeitssicher.
const_reverse_iterator crbegin() const;
Rückgabewert
Ein Iterator vom Typ const_reverse_iterator
bis zum Anfang des gleichzeitigen Vektors.
crend
Gibt einen Iterator vom Typ const_reverse_iterator
bis zum Ende des gleichzeitigen Vektors zurück. Diese Methode ist nebenläufigkeitssicher.
const_reverse_iterator crend() const;
Rückgabewert
Ein Iterator vom Typ const_reverse_iterator
bis zum Ende des gleichzeitigen Vektors.
empty
Testet, ob der gleichzeitige Vektor zum Zeitpunkt des Aufrufs dieser Methode leer ist. Diese Methode ist nebenläufigkeitssicher.
bool empty() const;
Rückgabewert
true
wenn der Vektor im Moment leer war, wurde die Funktion aufgerufen, false
andernfalls.
end
Gibt einen Iterator vom Typ iterator
oder const_iterator
an das Ende des gleichzeitigen Vektors zurück. Diese Methode ist nebenläufigkeitssicher.
iterator end();
const_iterator end() const;
Rückgabewert
Ein Iterator vom Typ iterator
oder const_iterator
bis zum Ende des gleichzeitigen Vektors.
Vorderseite
Gibt einen Verweis oder einen const
Verweis auf das erste Element im gleichzeitigen Vektor zurück. Wenn der gleichzeitige Vektor leer ist, ist der Rückgabewert nicht definiert. Diese Methode ist nebenläufigkeitssicher.
reference front();
const_reference front() const;
Rückgabewert
Ein Verweis oder ein const
Verweis auf das erste Element im gleichzeitigen Vektor.
get_allocator
Gibt eine Kopie des Allocators zurück, der zum Konstruieren des gleichzeitigen Vektors verwendet wird. Diese Methode ist nebenläufigkeitssicher.
allocator_type get_allocator() const;
Rückgabewert
Eine Kopie des Allocators, der zum Konstruieren des concurrent_vector
Objekts verwendet wird.
grow_by
Wächst dieser gleichzeitige Vektor nach _Delta
Elementen. Diese Methode ist nebenläufigkeitssicher.
iterator grow_by(
size_type _Delta);
iterator grow_by(
size_type _Delta,
const_reference _Item);
Parameter
_Delta
Die Anzahl der Elemente, die an das Objekt angefügt werden sollen.
_Artikel
Der Wert, mit dem die neuen Elemente initialisiert werden sollen.
Rückgabewert
Ein Iterator für das erste angefügte Element.
Hinweise
Wenn _Item
nicht angegeben, werden die neuen Elemente standardmäßig konstruiert.
grow_to_at_least
Wächst dieser gleichzeitige Vektor, bis er mindestens _N
Elemente enthält. Diese Methode ist nebenläufigkeitssicher.
iterator grow_to_at_least(size_type _N);
Parameter
_N
Die neue Mindestgröße für das concurrent_vector
Objekt.
Rückgabewert
Ein Iterator, der auf den Anfang der angefügten Sequenz oder auf das Element am Index _N
zeigt, wenn keine Elemente angefügt wurden.
max_size
Gibt die maximale Anzahl von Elementen zurück, die der gleichzeitige Vektor enthalten kann. Diese Methode ist nebenläufigkeitssicher.
size_type max_size() const;
Rückgabewert
Die maximale Anzahl von Elementen, die das concurrent_vector
Objekt enthalten kann.
operator =
Weist den Inhalt eines anderen concurrent_vector
-Objekts diesem Objekt zu. Diese Methode ist nicht nebenläufigkeitssicher.
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);
Parameter
M
Der allocator-Typ des Quellvektors.
_Vektor
Das concurrent_vector
-Quellobjekt.
Rückgabewert
Ein Verweis auf das concurrent_vector
-Objekt.
operator[]
Ermöglicht den Zugriff auf das Element im angegebenen Index im gleichzeitigen Vektor. Diese Methode ist für Lesevorgänge gleichzeitig sicher und auch beim Vergrößern des Vektors, solange Sie sichergestellt haben, dass der Wert _Index
kleiner als die Größe des gleichzeitigen Vektors ist.
reference operator[](size_type _index);
const_reference operator[](size_type _index) const;
Parameter
_Index
Der Index des abzurufenden Elements.
Rückgabewert
Ein Verweis auf das Element im angegebenen Index.
Hinweise
Die Version dieser operator []
Eigenschaft gibt einen Nichtverweis const
zurück, der nicht zum gleichzeitigen Schreiben in das Element aus verschiedenen Threads verwendet werden kann. Ein anderes Synchronisierungsobjekt sollte verwendet werden, um gleichzeitige Lese- und Schreibvorgänge mit demselben Datenelement zu synchronisieren.
Es wird keine Begrenzungsüberprüfung durchgeführt, um sicherzustellen, dass _Index
es sich um einen gültigen Index im gleichzeitigen Vektor handelt.
push_back
Fügt das angegebene Element am Ende des gleichzeitigen Vektors an. Diese Methode ist nebenläufigkeitssicher.
iterator push_back(const_reference _Item);
iterator push_back(T&& _Item);
Parameter
_Artikel
Der wert, der angefügt werden soll.
Rückgabewert
An iterator to item appended.
rbegin
Gibt einen Iterator vom Typ reverse_iterator
oder const_reverse_iterator
an den Anfang des gleichzeitigen Vektors zurück. Diese Methode ist nebenläufigkeitssicher.
reverse_iterator rbegin();
const_reverse_iterator rbegin() const;
Rückgabewert
Ein Iterator vom Typ reverse_iterator
oder const_reverse_iterator
bis zum Anfang des gleichzeitigen Vektors.
rend
Gibt einen Iterator vom Typ reverse_iterator
oder const_reverse_iterator
an das Ende des gleichzeitigen Vektors zurück. Diese Methode ist nebenläufigkeitssicher.
reverse_iterator rend();
const_reverse_iterator rend() const;
Rückgabewert
Ein Iterator vom Typ reverse_iterator
oder const_reverse_iterator
bis zum Ende des gleichzeitigen Vektors.
Reserve
Weist genügend Speicherplatz zu, um die Größe _N
des gleichzeitigen Vektors zu vergrößern, ohne später mehr Arbeitsspeicher zuweisen zu müssen. Diese Methode ist nicht nebenläufigkeitssicher.
void reserve(size_type _N);
Parameter
_N
Die Anzahl der Elemente, für die Platz reserviert werden soll.
Hinweise
reserve
ist nicht gleichzeitig sicher. Sie müssen sicherstellen, dass beim Aufrufen dieser Methode keine anderen Threads Methoden für den gleichzeitigen Vektor aufrufen. Die Kapazität des gleichzeitigen Vektors, nachdem die Methode zurückgegeben wurde, kann größer als die angeforderte Reservierung sein.
resize
Ändert die Größe des gleichzeitigen Vektors in die angeforderte Größe, Lösch- oder Hinzufügen von Elementen nach Bedarf. Diese Methode ist nicht nebenläufigkeitssicher.
void resize(
size_type _N);
void resize(
size_type _N,
const T& val);
Parameter
_N
Die neue Größe des concurrent_vector.
val
Der Wert neuer Elemente, die dem Vektor hinzugefügt werden, wenn die neue Größe größer als die originale Größe ist. Wenn der Wert nicht angegeben wird, werden den neuen Objekten der Standardwert für ihren Typ zugewiesen.
Hinweise
Wenn die Größe des Containers kleiner als die angeforderte Größe ist, werden elemente dem Vektor hinzugefügt, bis sie die angeforderte Größe erreicht. Wenn die Größe des Containers größer als die angeforderte Größe ist, werden die Am nächsten am Ende des Containers liegenden Elemente gelöscht, bis der Container die Größe _N
erreicht. Wenn die tatsächliche Größe des Containers der angeforderten Größe entspricht, wird keine Aktion durchgeführt.
resize
ist nicht parallel. Sie müssen sicherstellen, dass beim Aufrufen dieser Methode keine anderen Threads Methoden für den gleichzeitigen Vektor aufrufen.
shrink_to_fit
Komprimiert die interne Darstellung des gleichzeitigen Vektors, um die Fragmentierung zu reduzieren und die Speicherauslastung zu optimieren. Diese Methode ist nicht nebenläufigkeitssicher.
void shrink_to_fit();
Hinweise
Mit dieser Methode werden intern Speicherverschiebungselemente neu zugewiesen, wobei alle Iteratoren ungültig werden. shrink_to_fit
ist nicht gleichzeitig sicher. Sie müssen sicherstellen, dass beim Aufrufen dieser Funktion keine anderen Threads Methoden für den gleichzeitigen Vektor aufrufen.
size
Gibt die Anzahl der Elemente im gleichzeitigen Vektor zurück. Diese Methode ist nebenläufigkeitssicher.
size_type size() const;
Rückgabewert
Die Anzahl der Elemente in diesem concurrent_vector
Objekt.
Hinweise
Die zurückgegebene Größe wird garantiert alle Elemente enthalten, die durch Aufrufe der Funktion push_back
angefügt werden, oder Anwachsen-Vorgänge, die vor dem Aufrufen dieser Methode abgeschlossen wurden. Es kann jedoch auch Elemente enthalten, die zugewiesen werden, aber noch im Bau sind, indem gleichzeitig Aufrufe an eine der Wachstumsmethoden aufgerufen werden.
swap
Tauscht den Inhalt von zwei gleichzeitigen Vektoren. Diese Methode ist nicht nebenläufigkeitssicher.
void swap(concurrent_vector& _Vector);
Parameter
_Vektor
Das concurrent_vector
Objekt, mit dem Inhalte ausgetauscht werden sollen.