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.