Vettore dentro C++ Libreria di modelli standard (STL) con esempio
Che cos'è un C++ Vettore?
A C++ vettore è 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 contenitore. Gli elementi di un vettore vengono archiviati in una memoria contigua. Ciò lo consente C++ programmatori di accedere e attraversare gli elementi vettoriali utilizzando iteratori.
L'inserimento di nuovi dati in un vettore avviene alla fine. Ciò 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.
Quando utilizzare un vettore?
A C++ il vettore dovrebbe essere utilizzato nelle seguenti circostanze:
- Quando si ha a che fare con elementi di dati che cambiano costantemente.
- Se la dimensione dei dati non è nota prima di iniziare, il vettore non richiederà l'impostazione della dimensione massima del contenitore.
Come inizializzare i vettori in C++
La sintassi dei vettori in C++ è:
vector <data-type> name (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 dati.
- Gli elementi indicano il numero di elementi per i dati del vettore. Questo parametro è facoltativo.
Iteratori
Lo scopo degli iteratori è aiutarci ad accedere agli elementi memorizzati in un vettore. È un oggetto che funziona come un puntatore. Ecco gli iteratori comuni supportati da C++ vettori:
- vettore:: inizio(): fornisce un iteratore che punta al primo elemento del vettore.
- vettore:: fine(): fornisce un iteratore che punta all'elemento oltre la fine del vettore.
- vettore::cbegin(): è uguale a vector::begin(), ma non ha la capacità di modificare gli elementi.
- vettore::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++:
- vettore::push_back(): Questo modificatore spinge gli elementi da dietro.
- vettore::inserisci(): Per inserire nuovi elementi in un vettore in una posizione specificata.
- vettore::pop_back(): Questo modificatore rimuove gli elementi vettoriali dal retro.
- vettore::cancella(): Viene utilizzato per rimuovere una serie di elementi dalla posizione specificata.
- vettore::clear(): Rimuove tutti gli elementi vettoriali.
esempio 1
#include <iostream> #include <vector> using namespace std; int main() { vector<int> 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:
- Includi il file di intestazione iostream nel nostro codice. Ci permetterà di leggere e scrivere sulla console.
- Includi il file di intestazione vettoriale 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.
- Il { 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à a scorrere gli elementi del vettore, da 1st a 5th elementi.
- Spingi gli elementi nel numero del vettore dal retro. Per ogni iterazione, verrà aggiunto il valore corrente della variabile a al vettore, che è compreso tra 1 e 5.
- Stampa del testo sulla console
- Utilizzare una variabile iteratore a per scorrere gli elementi del vettore num dall'inizio all'elemento oltre la fine. Nota che stiamo utilizzando gli iteratori vector::begin() e vector::end().
- Stampa i valori indicati dalla variabile iteratore an sulla console per ogni iterazione.
- Stampa del testo sulla console. \n è un carattere di nuova riga, che sposta il cursore sulla nuova riga per stampare da lì.
- Utilizzare una variabile iteratore per scorrere gli elementi dei numeri vettoriali dall'inizio all'elemento oltre la fine. Nota che stiamo utilizzando gli iteratori vector::cbegin() e vector::cend().
- Stampa i valori a cui punta la 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 <iostream> #include <vector> using namespace std; int main() { vector<int> 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:
- Includi il file di intestazione iostream nel nostro codice per utilizzare le sue funzioni.
- Includi il file di intestazione vettoriale nel nostro codice per usarlo 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().
- Dichiara un vettore denominato nums per memorizzare alcuni valori interi.
- Memorizza 5 elementi nel vettore num. Ciascuno con un valore di 1.
- Stampa del testo sulla console
- Utilizzare una variabile iteratore a per scorrere gli elementi del vettore nums.
- Stampa i valori dei numeri vettoriali sulla console per ogni iterazione.
- Aggiungi il valore 2 alla fine del vettore num.
- Dichiara una variabile intera n per memorizzare la dimensione dei numeri del vettore.
- Stampa l'ultimo valore dei numeri vettoriali insieme ad altro testo. Dovrebbe restituire un 2.
- Rimuovi l'ultimo elemento dal vettore num. I 2 verranno rimossi.
- Stampa il testo sulla console. \n sposta il cursore sulla nuova riga per stampare il testo lì.
- Utilizzare una variabile iteratore a per scorrere gli elementi del vettore nums.
- Stampa i valori dei numeri vettoriali sulla console per ogni iterazione.
- Inserisci il valore 7 all'inizio dei numeri del vettore.
- Stampa il primo valore dei numeri vettoriali insieme ad altro testo. Dovrebbe restituire 7.
- Elimina tutti gli elementi dai numeri del vettore.
- Stampa la dimensione del numero del vettore insieme ad altro testo dopo aver cancellato tutti i contenuti. Dovrebbe restituire 0.
- Fine del corpo della funzione main().
Ultra-Grande
Utilizzare le seguenti funzioni per determinare la capacità di un vettore:
- Misurare() -Restituisce il numero di elementi in un vettore.
- Dimensione_massima() -Restituisce il numero massimo di elementi che un vettore può memorizzare.
- Capacità () –It restituisce la quantità di spazio di archiviazione allocato a un vettore.
- Ridimensiona () –It ridimensiona il contenitore per contenere n elementi. Se la dimensione corrente del vettore è maggiore di n, gli elementi sul retro verranno rimossi dal vettore. Se la dimensione corrente del vettore è inferiore a n, verranno aggiunti elementi extra sul retro del vettore.
- Vuoto () –it restituisce vero se un vettore è vuoto. Altrimenti restituisce false.
esempio 3
#include <iostream> #include <vector> using namespace std; int main() { vector<int> 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"<<endl; else cout << "Vector is empty"<<endl; return 0; }
Produzione:
Ecco uno screenshot del codice:
Spiegazione del codice:
- Includi il file di intestazione iostream nel nostro codice per utilizzare la sua funzione.
- Includi il file di intestazione vettoriale nel nostro codice per utilizzare le sue funzioni.
- Includi 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 al corpo di questa funzione.
- Crea un vettore denominato vettore1 per memorizzare i numeri interi.
- Utilizza un ciclo for per creare la variabile x con valori da 1 a 10.
- Inserisci 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.
- Utilizzare un'istruzione else per indicare cosa fare se il vettore è vuoto.
- Testo da stampare sulla console se il vettore è vuoto.
- Il programma deve restituire valore in caso di completamento positivo.
- Fine del corpo della funzione main().
Sommario
- A C++ vettore è un array dinamico in grado di ridimensionarsi automaticamente quando un elemento viene aggiunto o eliminato da esso.
- L'archiviazione di un vettore viene gestita automaticamente dal contenitore.
- Gli elementi di un vettore vengono archiviati in una memoria contigua per potervi accedere e quindi attraversare utilizzando gli iteratori.
- L'inserimento dei nuovi dati in un vettore avviene alla sua fine.
- L'inserimento dei 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 utilizzati quando si ha a che fare con elementi di dati che cambiano in modo coerente.
- Inoltre, puoi utilizzare i vettori se la dimensione dei dati non è nota prima di iniziare.