C + + Konzepte: Container
Aus cppreference.com
|
|
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
A
Container ist ein Objekt verwendet werden, um andere Objekte zu speichern und kümmert sich um die Verwaltung des Speichers durch die darin enthaltenen Objekte verwendet .Original:
A
Container is an object used to store other objects and taking care of the management of the memory used by the objects it contains.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Inhaltsverzeichnis |
[Bearbeiten] Anforderungen
-
CContainer-TypOriginal:CContainer typeThe text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions. -
TElementtypOriginal:TElement typeThe text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions. -
a,bObjekte vom TypCOriginal:a,bObjects of typeCThe text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
[Bearbeiten] Types
| name | type | notes |
|---|---|---|
value_type |
T | Destructible
|
reference |
lvalue of T | |
const_reference |
const lvalue of T | |
iterator |
iterator pointing to T | ForwardIteratorconvertible to const_iterator
|
const_iterator |
const iterator pointing to T | ForwardIterator
|
difference_type |
signed integer | must be the same as iterator_traits::difference_type for iterator and const_iterator
|
size_type |
unsigned integer | large enough to represent all positive values of difference_type
|
[Bearbeiten] Methoden und Operatoren
| expression | return type | semantics | conditions | complexity | |
|---|---|---|---|---|---|
| C(); | C | Creates an empty container | Post: u.empty() == true | Constant | |
| C(a) | C | Create a copy of a |
Pre: T must be CopyInsertablePost: a == X(a) |
Linear | |
| a = b | C& | All elements of a are destroyed or move assigned to elements of b |
Post: a == b | Linear | |
| (&a)->~C() | void | Destroy all elements and free all memory | Linear | ||
| a.begin() | (const_)iterator | Iterator to the first element | Constant | ||
| a.end() | (const_)iterator | Iterator to one passed the last element | Constant | ||
| a.cbegin()(seit C++11) | const_iterator | const_cast<const C&>(a).begin() | Constant | ||
| a.cend()(seit C++11) | const_iterator | const_cast<const C&>(a).end() | Constant | ||
| a == b | convertible to bool | Makes C EqualityComparable |
Pre: T must be EqualityComparable |
Linear | |
| a != b | convertible to bool | !(a==b) | Linear | ||
| a.swap(b) | void | exchanges the values of a and b | Constant[1][2] | ||
| swap(a,b) | void | a.swap(b) | Constant[1] | ||
| a.size() | size_type | distance(a.begin(),a.end()) | Constant[2] | ||
| a.max_size() | size_type | b.size() where b is the largest possible container | Constant[2] | ||
| a.empty() | convertible to bool | a.begin() == a.end() | Constant | ||
| notes | |||||
[Bearbeiten] Container Daten Rennen
Implementierungen sind nicht verpflichtet, Reentranz Garantie für Sequenz-Modifikationen stellen - es ist nicht sicher,
push_back und lesen begin gleichzeitig. Es ist jedoch erforderlich, um Daten Rennen zu vermeiden, wenn der Inhalt des enthaltenen Objekt in verschiedenen Elemente derselben Sequenz gleichzeitig (mit Ausnahme vector<bool>) modifiziert sind. Mit anderen Worten, für eine vector<int> mit größer als 1 ist, und x[1] = 5 *x.begin() = 10 nicht in einem Daten-Rennen führen .Original:
Implementations are not required to provide any reentrancy guarantee for sequence modifications - it is not safe to
push_back and read begin concurrently. However, it is required to avoid data races when the contents of the contained object in different elements of the same sequence are modified concurrently (except for vector<bool>). In other words, for a vector<int> with size greater than 1, x[1] = 5 and *x.begin() = 10 will not result in a data race.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Diese Funktionen müssen ebenfalls berücksichtigt werden
const: begin, end, rbegin, rend, front, back, data, find, lower_bound, upper_bound, equal_range, at, und, außer in AssociativeContainer und UnorderedAssociativeContainer, operator[]. Aufruf einer dieser Funktionen gleichzeitig nicht in einem Datensatz Rennen führen .Original:
These functions must also be considered
const: begin, end, rbegin, rend, front, back, data, find, lower_bound, upper_bound, equal_range, at, and, except in AssociativeContainer and UnorderedAssociativeContainer, operator[]. Calling any of these functions concurrently will not result in a data race.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[Bearbeiten] Andere Konzepte
- C
- T

