std::vector
Déclaré dans l'en-tête <vector>
|
||
template< class T, |
||
std::vector
est un conteneur séquentiel qui encapsule les tableaux de taille dynamique .
Les éléments sont stockés de façon contigüe, ce qui signifie que les éléments sont accessibles non seulement via les itérateurs, mais aussi à partir des pointeurs classiques sur un élément. Cela signifie qu'un pointeur sur un élément d'un vector
peut être passé à une fonction qui attend un pointeur sur un élément d'un tableau.
Le stockage du vector
est pris en charge automatiquement, pouvant être augmenté ou diminué au besoin. Les vector
occupent généralement plus d'espace que les tableaux statiques, du fait que de la mémoire supplémentaire est allouée pour anticiper un accroissement futur. Ainsi, un vector
n'a pas besoin de ré-allouer la mémoire chaque fois qu'un élément est inséré, mais seulement lorsque la mémoire additionnelle est épuisée. La quantité totale de mémoire allouée peut être obtenue en utilisant la fonction capacity()
. La mémoire additionnelle peut être rendue au système via un appel à shrink_to_fit()
.
Les ré-allocations sont généralement des opérations coûteuses en termes de performance. La fonction reserve()
peut être utilisée pour éliminer les ré-allocations lorsque la quantité maximum d'éléments est connue d'avance.
La complexité (efficacité) des opérations courante sur les vector
sont les suivantes :
- Accès aléatoire - constante O(1)
- Insertion ou le retrait d'éléments à la fin - constante amortie O(1)
- Insertion ou le retrait d'éléments - linéaire O(n)
std::vector
répond aux exigences des concepts Container
, AllocatorAwareContainer
, SequenceContainer
et ReversibleContainer
.
Sommaire |
[modifier] Paramètre template
T | - | Type des éléments.
| ||||
Allocator | - | Les allocateurs gèrent toutes les demandes d'allocation et de désallocation de la mémoire pour un conteneur générique ou personnalisé. Le type doit répondre aux exigences de Allocator .
|
[modifier] Spécialisations
La bibliothèque standard fournit une spécialisation de std::vector
pour le type bool, qui est optimisée pour réduire la taille mémoire utilisée par le conteneur.
champ de bits dynamique efficace en espace (classe générique) |
[modifier] Types des membres
Type du membre | Définition |
value_type
|
T
|
allocator_type
|
Allocator
|
size_type
|
Type intégral non signé (généralement size_t) |
difference_type
|
Type intégral signé (généralement ptrdiff_t) |
reference
|
Allocator::reference (avant C++11)value_type& (depuis C++11)
|
const_reference
|
Allocator::const_reference (avant C++11)const value_type& (depuis C++11)
|
pointer
|
Allocator::pointer (avant C++11)std::allocator_traits<Allocator>::pointer (depuis C++11) |
const_pointer
|
Allocator::const_pointer (avant C++11) std::allocator_traits<Allocator>::const_pointer (depuis C++11) |
iterator
|
RandomAccessIterator
|
const_iterator
|
Itérateur constant à accès aléatoire |
reverse_iterator
|
std::reverse_iterator<iterator> |
const_reverse_iterator
|
std::reverse_iterator<const_iterator> |
[modifier] Fonctions membres
Construit le vector (fonction membre publique) | |
détruit le vector (fonction membre publique) | |
Attribue les valeurs dans le conteneur (fonction membre publique) | |
Attribue les valeurs dans le conteneur | |
Renvoie l'allocateur associé | |
Accès aux éléments | |
accède à l'élément spécifié avec vérification de bornes (fonction membre publique) | |
accède à l'élément spécifié (fonction membre publique) | |
accède au premier élément (fonction membre publique) | |
accède au dernier élément (fonction membre publique) | |
(C++11) |
accède directement au tableau sous-jacent (fonction membre publique) |
Itérateurs | |
retourne un itérateur au début Original: returns an iterator to the beginning The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction membre publique) | |
retourne un itérateur à la fin Original: returns an iterator to the end The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction membre publique) | |
retourne un itérateur inversé au début (fonction membre publique) | |
retourne un itérateur inversé à la fin (fonction membre publique) | |
Capacité | |
vérifie si le conteneur est vide Original: checks whether the container is empty The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction membre publique) | |
retourne le nombre d'éléments Original: returns the number of elements The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction membre publique) | |
retourne le plus grand nombre possible d'éléments Original: returns the maximum possible number of elements The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction membre publique) | |
réserve de l'espace mémoire (fonction membre publique) | |
renvoie le nombre d'éléments qui peuvent être contenus dans l'espace mémoire actuellement alloué (fonction membre publique) | |
(C++11) |
réduit l'utilisation de la mémoire en libérant la mémoire inutilisée Original: reduces memory usage by freeing unused memory The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction membre publique) |
Manipulateurs | |
efface le contenu Original: clears the contents The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction membre publique) | |
insère des éléments Original: inserts elements The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction membre publique) | |
(C++11) |
construit des éléments en mémoire (fonction membre publique) |
efface des éléments (fonction membre publique) | |
ajoute des éléments à la fin Original: adds elements to the end The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction membre publique) | |
(C++11) |
construit des éléments en place à la fin (fonction membre publique) |
supprime le dernier élément Original: removes the last element The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction membre publique) | |
modifie le nombre d'éléments stockés Original: changes the number of elements stored The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction membre publique) | |
permute les contenus Original: swaps the contents The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction membre publique) |
[modifier] Fonctions libres
compare lexicographiquement les valeurs dans le vector Original: lexicographically compares the values in the vector The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction générique) | |
l'algorithme spécialisé std::swap Original: specializes the std::swap algorithm The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction générique) |