<div class="t-tr-text">C + +: concetti<div class="t-tr-dropdown"><div><div><div class="t-tr-dropdown-arrow-border"></div><div class="t-tr-dropdown-arrow"></div><div class="t-tr-dropdown-h">Original:</div><div class="t-tr-dropdown-orig">C++ concepts:</div><div class="t-tr-dropdown-notes">The text has been machine-translated via [http://translate.google.com Google Translate].<br/> You can help to correct and verify the translation. Click [http://en.cppreference.com/w/Cppreference:MachineTranslations here] for instructions.</div></div></div></div></div> Container
Da cppreference.com.
![]() |
Questa pagina è stata tradotta in modo automatico dalla versione in ineglese della wiki usando Google Translate.
La traduzione potrebbe contenere errori e termini strani. Muovi il puntatore sopra al testo per vedere la versione originale. Puoi aiutarci a correggere gli gli errori. Per ulteriori istruzioni clicca qui. |
Un
Container
è un oggetto utilizzato per memorizzare altri oggetti e prendersi cura della gestione della memoria utilizzata dagli oggetti in esso contenuti.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.
Indice |
[modifica] Requisiti
-
C
Tipo di contenitoreOriginal:C
Container typeThe text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions. -
T
Tipo di elementoOriginal:T
Element typeThe text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions. -
a
,b
oggetti diC
tipoOriginal:a
,b
Objects of typeC
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
[modifica] Tipi
name | type | notes |
---|---|---|
value_type |
T | Destructible
|
reference |
lvalue of T | |
const_reference |
const lvalue of T | |
iterator |
iterator pointing to T | ForwardIterator convertible 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
|
[modifica] Metodi e operatori
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 CopyInsertable Post: 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()(dal C++11) | const_iterator | const_cast<const C&>(a).begin() | Constant | ||
a.cend()(dal 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 | |||||
[modifica] Dati container gare
Implementazioni non sono tenuti a fornire alcuna garanzia rientranza per le modifiche di sequenza - non è sicuro di
push_back
e leggere begin
contemporaneamente. Tuttavia, è richiesto di evitare gare di dati quando il contenuto dell'oggetto contenuto in diversi elementi della stessa sequenza vengono modificate contemporaneamente (tranne vector<bool>
). In altre parole, per un vector<int>
con dimensione maggiore di 1, e x[1] = 5
*x.begin() = 10
non si tradurrà in una corsa dati.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.
Queste funzioni devono essere considerati
const
: begin
, end
, rbegin
, rend
, front
, back
, data
, find
, lower_bound
, upper_bound
, equal_range
, at
, e, tranne nel AssociativeContainer
e UnorderedAssociativeContainer
, operator[]
. Chiamare una di queste funzioni contemporaneamente non si tradurrà in una gara di dati.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.
[modifica] Altri concetti
- C
- T