Libreria C ++ - <vector>
introduzione
I vettori sono contenitori di sequenze che possono cambiare dimensione. Il contenitore è un oggetto che contiene dati dello stesso tipo. I contenitori di sequenza memorizzano gli elementi rigorosamente in sequenza lineare.
Vector memorizza gli elementi in posizioni di memoria contigue e consente l'accesso diretto a qualsiasi elemento utilizzando l'operatore pedice []. A differenza dell'array, il vettore può ridursi o espandersi secondo necessità in fase di esecuzione. La memorizzazione del vettore viene gestita automaticamente.
Per supportare la riduzione e l'espansione della funzionalità in fase di esecuzione, il contenitore vettoriale può allocare uno spazio di archiviazione aggiuntivo per adattarsi a una possibile crescita, quindi il contenitore ha una capacità effettiva maggiore delle dimensioni. Pertanto, rispetto all'array, il vettore consuma più memoria in cambio della capacità di gestire lo storage e di crescere dinamicamente in modo efficiente.
Sono validi anche i vettori di dimensione zero. In tal caso vector.begin () e vector.end () punta alla stessa posizione. Ma il comportamento di chiamare front () o back () non è definito.
Definizione
Di seguito è riportata la definizione di std :: vector dal file di intestazione <vector>
template < class T, class Alloc = allocator<T> > class vector;
Parametri
T - Tipo di elemento contenuto.
T può essere sostituito da qualsiasi altro tipo di dati incluso il tipo definito dall'utente.
Alloc - Tipo di oggetto allocatore.
Per impostazione predefinita, viene utilizzato il modello di classe dell'allocatore, che definisce il modello di allocazione della memoria più semplice ed è indipendente dal valore.
Tipi di membri
I seguenti tipi di membro possono essere usati come parametri o tipo restituito dalle funzioni membro.
| Sr.No. | Tipi di membri | Definizione |
|---|---|---|
| 1 | value_type | T (Primo parametro del modello) |
| 2 | allocator_type | Alloc (Secondo parametro del modello) |
| 3 | riferimento | value_type & |
| 4 | const_reference | const value_type & |
| 5 | puntatore | value_type * |
| 6 | const_pointer | const value_type * |
| 7 | iteratore | un iteratore ad accesso casuale per value_type |
| 8 | const_iterator | un iteratore ad accesso casuale per const value_type |
| 9 | reverse_iterator | std :: reverse_iterator <iterator> |
| 10 | const_reverse_iterator | std :: reverse_iterator <const_iterator> |
| 11 | size_type | size_t |
| 12 | differenza_tipo | ptrdiff_t |
Funzioni da <vector>
Di seguito è riportato un elenco di tutti i metodi dall'intestazione <vector>.
Costruttori
| Sr.No. | Metodo e descrizione |
|---|---|
| 1 | vector :: costruttore predefinito di vettori Costruisce un contenitore vuoto, con zero elementi. |
| 2 | vector :: costruttore di riempimento vettoriale Costruisce un contenitore con n elementi e assegna val a ogni elemento. |
| 3 | vector :: costruttore di intervalli vettoriali Costruisce un contenitore con altrettanti elementi nella gamma di prima per ultimo. |
| 4 | vector :: costruttore di copie vettoriali Costruisce un contenitore con copia di ogni elemento presente nel contenitore x esistente . |
| 5 | vector :: costruttore di spostamento vettoriale Costruisce il contenitore con il contenuto di altri utilizzando la semantica di spostamento . |
| 6 | vector :: costruttore dell'elenco di inizializzatori di vettore Constructs a container from initializer list. |
Destructor
| Sr.No. | Method & Description |
|---|---|
| 1 | vector::~vector Destroys container by deallocating container memory. |
Member functions
| Sr.No. | Method & Description |
|---|---|
| 1 | vector::assign fill version Assign new values to the vector elements by replacing old ones. |
| 2 | vector::assign range version Assign new values to the vector elements by replacing old ones. |
| 3 | vector::assign initializer list version Assign new values to the vector elements by replacing old ones. |
| 4 | vector::at Returns reference to the element present at location n in the vector. |
| 5 | vector::back Returns a reference to the last element of the vector. |
| 6 | vector::begin Return a random access iterator pointing to the first element of the vector. |
| 7 | vector::capacity Returns the size of allocate storage, expressed in terms of elements. |
| 8 | vector::cbegin Returns a constant random access iterator which points to the beginning of the vector. |
| 9 | vector::cend Returns a constant random access iterator which points to the beginning of the vector. |
| 10 | vector::clear Destroys the vector by removing all elements from the vector and sets size of vector to zero. |
| 11 | vector::crbegin Returns a constant reverse iterator which points to the reverser beginning of the container. |
| 12 | vector::crend Returns a constant reverse iterator which points to the reverse end of the vector. |
| 13 | vector::data Returns a pointer to the first element of the vector container. |
| 14 | vector::emplace Extends container by inserting new element at position. |
| 15 | vector::emplace_back Inserts new element at the end of vector. |
| 16 | vector::empty Tests whether vector is empty or not. |
| 17 | vector::end Returns an iterator which points to past-the-end element in the vector container. |
| 18 | vector::erase position version Removes single element from the the vector. |
| 19 | vector::erase range version Removes single element from the the vector. |
| 20 | vector::front Returns a reference to the first element of the vector. |
| 21 | vector::get_allocator Returns an allocator associated with vector. |
| 22 | vector::insert single element version Extends iterator by inserting new element at position. |
| 23 | vector::insert fill version Extends vector by inserting new element in the container. |
| 24 | vector::insert range version Extends vector by inserting new element in the container. |
| 25 | vector::insert move version Extends vector by inserting new element in the container. |
| 26 | vector::insert initializer list version Extends vector by inserting new element in the container. |
| 27 | vector::max_size Returns the maximum number of elements can be held by vector. |
| 28 | vector::operator= copy version Assign new contents to the vector by replacing old ones and modifies size if necessary. |
| 29 | vector::operator= move version Assign new contents to the vector by replacing old ones and modifies size if necessary. |
| 30 | vector::operator = initializer list version Assign new contents to the vector by replacing old ones and modifies size if necessary. |
| 31 | vector::operator[] Returns a reference to the element present at location n. |
| 32 | vector::pop_back Removes last element from vector and reduces size of vector by one. |
| 33 | vector::push_back Inserts new element at the end of vector and increases size of vector by one. |
| 34 | vector::rbegin Returns a reverse iterator which points to the last element of the vector. |
| 35 | vector::rend Returns a reverse iterator which points to the reverse end of the vector. |
| 36 | vector::reserve Requests to reserve vector capacity be at least enough to contain n elements. |
| 37 | vector::resize Changes the size of vector. |
| 38 | vector::shrink_to_fit Requests the container to reduce it's capacity to fit its size. |
| 39 | vector::size Returns the number of elements present in the vector. |
| 40 | vector::swap Exchanges the content of vector with contents of vector x. |
Non-member overloaded functions
| Sr.No. | Method & Description |
|---|---|
| 1 | operator == Tests whether two vectors are equal or not. |
| 2 | operator != Tests whether two vectors are equal or not. |
| 3 | operator < Tests whether first vector is less than other or not. |
| 4 | operator <= Tests whether first vector is less than or equal to other or not. |
| 5 | operator > Tests whether first vector is greater than other or not. |
| 6 | operator >= Tests whether first vector is greater than or equal to other or not. |
| 7 | swap Exchanges the contents of two vector. |
