Cos'è un vettore C ++?
Un C ++ VECTOR è un array dinamico in grado di ridimensionarsi automaticamente. Il ridimensionamento avviene dopo che un elemento è stato aggiunto o eliminato dal vettore. Lo stoccaggio viene gestito automaticamente dal container. Gli elementi di un vettore vengono archiviati in una memoria contigua. Ciò consente ai programmatori C ++ di accedere e attraversare gli elementi vettoriali usando gli iteratori.
L'inserimento di nuovi dati in un vettore viene eseguito alla sua fine. Questo richiede un tempo differenziale. La rimozione di un elemento da un vettore richiede tempo costante. Il motivo è che non è necessario ridimensionare il vettore. L'inserimento o la cancellazione di un elemento all'inizio del vettore richiede tempo lineare.
In questo tutorial C ++ imparerai:
- Cos'è un vettore C ++?
- Quando utilizzare un vettore?
- Come inizializzare i vettori in C ++
- Iteratori
- Modificatori
- Esempio 1
- Esempio 2
- Capacità
- Esempio 3
Quando utilizzare un vettore?
Un vettore C ++ dovrebbe essere utilizzato nelle seguenti circostanze:
- Quando si ha a che fare con elementi di dati che cambiano in modo coerente.
- Se la dimensione dei dati non è nota prima di iniziare, il vettore non richiederà di impostare la dimensione massima del contenitore.
Come inizializzare i vettori in C ++
La sintassi dei vettori in C ++ è:
vectorname (items)
- Come mostrato sopra, iniziamo con la parola chiave vector.
- Il tipo di dati è il tipo di dati degli elementi da memorizzare nel vettore.
- Il nome è il nome del vettore o degli elementi di dati.
- Gli elementi indicano il numero di elementi per i dati del vettore. Questo parametro è facoltativo.
Iteratori
Lo scopo degli iteratori è di aiutarci ad accedere agli elementi memorizzati in un vettore. È un oggetto che funziona come un puntatore. Ecco gli iteratori comuni supportati dai vettori C ++:
- vector :: begin (): fornisce un iteratore che punta al primo elemento del vettore.
- vector :: end (): fornisce un iteratore che punta all'elemento oltre la fine del vettore.
- vector :: cbegin (): è uguale a vector :: begin (), ma non ha la capacità di modificare gli elementi.
- vector :: cend (): è uguale a vector :: end () ma non può modificare gli elementi vettoriali.
Modificatori
I modificatori vengono utilizzati per modificare il significato del tipo di dati specificato. Ecco i modificatori comuni in C ++:
- vector :: push_back (): questo modificatore spinge gli elementi da dietro.
- vector :: insert (): per inserire nuovi elementi in un vettore in una posizione specificata.
- vector :: pop_back (): questo modificatore rimuove gli elementi vettoriali dal retro.
- vector :: erase (): viene utilizzato per rimuovere un intervallo di elementi dalla posizione specificata.
- vector :: clear (): rimuove tutti gli elementi del vettore.
Esempio 1
#include#include using namespace std;int main(){vector nums;for (int a = 1; a <= 5; a++)nums.push_back(a);cout << "Output from begin and end: ";for (auto a = nums.begin(); a != nums.end(); ++a)cout << *a << " ";cout << "\nOutput from cbegin and cend: ";for (auto a = nums.cbegin(); a != nums.cend(); ++a)cout << *a << " ";return 0;}
Produzione:
Ecco uno screenshot del codice:
Spiegazione del codice:
- Includere il file di intestazione iostream nel nostro codice. Ci permetterà di leggere e scrivere sulla console.
- Includere il file di intestazione del vettore nel nostro codice. Ci permetterà di lavorare con i vettori in C ++.
- Includere lo spazio dei nomi std in modo da utilizzare le sue classi e funzioni senza chiamarlo.
- Chiama la funzione main () all'interno della quale va aggiunta la logica del programma.
- La {segna l'inizio del corpo della funzione main ().
- Dichiara un vettore denominato nums per memorizzare un insieme di numeri interi.
- Crea un ciclo for per aiutarci a iterare sul vettore. La variabile ci aiuterà iterare sugli elementi vettoriali, dal 1 ° al 5 th elementi.
- Spingere gli elementi nel vettore num dal retro. Per ogni iterazione, questo aggiungerà il valore corrente della variabile a nel vettore, che è da 1 a 5.
- Stampa del testo sulla console
- Usa una variabile iteratore a per scorrere gli elementi del vettore nums dall'inizio all'elemento past-the-end. Nota che stiamo usando gli iteratori vector :: begin () e vector :: end ().
- Stampa i valori puntati dalla variabile iteratore an sulla console per ogni iterazione.
- Stampa del testo sulla console. \ N è un nuovo carattere di riga, che sposta il cursore sulla nuova riga per stampare da lì.
- Usa una variabile iteratore per scorrere gli elementi del vettore nums dall'inizio all'elemento past-the-end. Nota che stiamo usando gli iteratori vector :: cbegin () e vector :: cend ().
- Stampa i valori puntati dalla variabile iteratore a sulla console per ogni iterazione.
- La funzione principale dovrebbe restituire un valore se il programma viene eseguito correttamente.
- Fine del corpo della funzione main ().
Esempio 2
#include#include using namespace std;int main(){vector nums;nums.assign(5, 1);cout << "Vector contents: ";for (int a = 0; a < nums.size(); a++)cout << nums[a] << " ";nums.push_back(2);int n = nums.size();cout << "\nLast element: " << nums[n - 1];nums.pop_back();cout << "\nVector contents: ";for (int a = 0; a < nums.size(); a++)cout << nums[a] << " ";nums.insert(nums.begin(), 7);cout << "\nFirst element: " << nums[0];nums.clear();cout << "\nSize after clear(): " << nums.size();}
Produzione:
Ecco uno screenshot del codice:
Spiegazione del codice:
- Includere il file di intestazione iostream nel nostro codice per utilizzare le sue funzioni.
- Includere il file di intestazione del vettore nel nostro codice per utilizzare le sue funzioni.
- Includere lo spazio dei nomi std per utilizzare le sue classi senza chiamarlo.
- Chiama la funzione main (). La logica del programma dovrebbe essere aggiunta all'interno del suo corpo.
- L'inizio del corpo della funzione main ().
- Dichiarare un vettore denominato nums per memorizzare alcuni valori interi.
- Memorizza 5 elementi nel vettore nums. Ciascuno con un valore di 1.
- Stampa del testo sulla console
- Usa una variabile iteratore a per scorrere gli elementi del vettore nums.
- Stampa i valori dei numeri di vettore sulla console per ogni iterazione.
- Aggiungi il valore 2 alla fine del vettore num.
- Dichiarare una variabile intera n per memorizzare la dimensione del vettore nums.
- Stampa l'ultimo valore del vettore num insieme ad altro testo. Dovrebbe restituire un 2.
- Rimuovi l'ultimo elemento dal vettore nums. Il 2 verrà rimosso.
- Stampa il testo sulla console. \ N sposta il cursore sulla nuova riga per stampare il testo lì.
- Usa una variabile iteratore a per scorrere gli elementi del vettore nums.
- Stampa i valori dei numeri di vettore sulla console per ogni iterazione.
- Inserisci il valore 7 all'inizio del vettore nums.
- Stampa il primo valore del vettore num insieme ad altro testo. Dovrebbe tornare 7.
- Elimina tutti gli elementi dal vettore num.
- Stampa la dimensione del vettore num insieme ad altro testo dopo aver cancellato tutti i contenuti. Dovrebbe restituire 0.
- Fine del corpo della funzione main ().
Capacità
Utilizzare le seguenti funzioni per determinare la capacità di un vettore:
- Size () - Restituisce il numero di elementi in un vettore.
- Max_size (): restituisce il numero più alto di elementi che un vettore può memorizzare.
- Capacità (): restituisce la quantità di spazio di archiviazione allocata a un vettore.
- Resize (): ridimensiona il contenitore per contenere n elementi. Se la dimensione corrente del vettore è maggiore di n, gli elementi posteriori verranno rimossi dal vettore. Se la dimensione corrente del vettore è inferiore a n, verranno aggiunti elementi extra sul retro del vettore.
- Empty () -i t restituisce true se un vettore è vuoto, altrimenti restituisce false.
Esempio 3
#include#include using namespace std;int main() {vector vector1;for (int x = 1; x <= 10; x++)vector1.push_back(x);cout << "Vector size: " << vector1.size()<< endl;cout << "Vector capacity: " << vector1.capacity() << endl;cout << "Maximum size of vector: " << vector1.max_size()<< endl;vector1.resize(5);cout << "Vector size after resizing: " << vector1.size() << endl;if (vector1.empty() == false)cout << "Vector is not empty"< Produzione:
Ecco uno screenshot del codice:
Spiegazione del codice:
- Includere il file di intestazione iostream nel nostro codice per utilizzare la sua funzione.
- Includere il file di intestazione del vettore nel nostro codice per utilizzare le sue funzioni.
- Includere lo spazio dei nomi std nel nostro codice per utilizzare le sue classi senza chiamarlo.
- Chiama la funzione main (). La logica del programma dovrebbe essere aggiunta all'interno del corpo di questa funzione.
- Crea un vettore denominato vector1 per memorizzare i numeri interi.
- Usa un ciclo for per creare la variabile x con valori da 1 a 10.
- Spingere i valori della variabile x nel vettore.
- Stampa la dimensione del vettore insieme ad altro testo sulla console.
- Stampa la capacità del vettore insieme ad altro testo sulla console.
- Stampa il numero massimo di elementi che il vettore può contenere insieme ad altro testo sulla console.
- Ridimensiona il vettore per contenere solo 5 elementi.
- Stampa la nuova dimensione del vettore insieme ad altro testo.
- Controlla se il vettore non è vuoto.
- Stampa il testo sulla console se il vettore non è vuoto.
- Usa un'istruzione else per indicare cosa fare se il vettore è vuoto.
- Testo da stampare sulla console se il vettore è vuoto.
- Il programma deve restituire un valore una volta completato con successo.
- Fine del corpo della funzione main ().
Sommario:
- Un vettore C ++ è un array dinamico in grado di ridimensionarsi automaticamente quando un elemento viene aggiunto o eliminato da esso.
- La memorizzazione di un vettore viene gestita automaticamente dal contenitore.
- Gli elementi di un vettore vengono memorizzati in una memoria contigua per essere acceduti e quindi attraversati tramite iteratori.
- L'inserimento di nuovi dati in un vettore viene eseguito alla sua fine.
- L'inserimento di dati in un vettore richiede un tempo differenziale.
- La rimozione di un elemento da un vettore richiede tempo costante.
- L'inserimento o la cancellazione di un elemento all'inizio richiede tempo lineare.
- I vettori dovrebbero essere usati quando si tratta di elementi di dati che cambiano in modo coerente.
- Inoltre, puoi usare i vettori se la dimensione dei dati non è nota prima di iniziare.