Basi di std::vector: push_back, size, capacity
Crei, ampli e analizzi i vector e comprenda la differenza tra capacity e size
Basi di std::vector: push_back, size, capacity è una lezione C++ Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento C++ Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso C++ Academy include 4 lezioni in totale.
Perché std::vector?
std::vector è il contenitore predefinito in C++. Si espande automaticamente, gestisce la memoria al posto Suo e offre accesso casuale O(1). Lo usi a meno che non abbia un motivo specifico per non farlo.
Inclusione e dichiarazione
Includa <vector> e dichiari il vettore indicando il tipo degli elementi come parametro del template.
#include <vector>
std::vector<int> nums;
std::vector<std::string> names = {"Ada", "Bob"};Forme di inizializzazione
Esistono diversi modi per inizializzare un vettore:
std::vector<int> a; // empty
std::vector<int> b(5); // 5 zeros
std::vector<int> c(5, 42); // 5 copies of 42
std::vector<int> d{1, 2, 3}; // {1,2,3}
std::vector<int> e(d); // copy of dpush_back: aggiungere in coda
Aggiunga un elemento alla fine con push_back. Complessità ammortizzata O(1).
std::vector<int> v;
v.push_back(10);
v.push_back(20);
v.push_back(30);emplace_back: costruire direttamente sul posto
emplace_back inoltra i propri argomenti al costruttore dell'elemento, senza creare un oggetto temporaneo. È leggermente più veloce per i tipi non banali.
std::vector<std::pair<int,int>> v;
v.emplace_back(1, 2); // constructs a pair in placesize e capacity
Sono due concetti distinti:
- size — numero di elementi attualmente memorizzati
- capacity — numero di elementi che lo spazio allocato può contenere senza riallocare
La capacità cresce a blocchi, di solito raddoppiando.
Esaminare size e capacity
Usi le funzioni membro corrispondenti:
std::vector<int> v;
for (int i = 0; i < 10; ++i) {
v.push_back(i);
std::cout << "size=" << v.size() << " capacity=" << v.capacity() << "\n";
}reserve: preallocare la capacità
Se sa quanti elementi aggiungerà, chiami prima reserve per evitare riallocazioni ripetute.
std::vector<int> v;
v.reserve(1000000); // preallocate
for (int i = 0; i < 1000000; ++i) v.push_back(i);shrink_to_fit: liberare memoria
Dopo aver eliminato molti elementi, liberi la capacità inutilizzata con shrink_to_fit. Il comportamento non è vincolante: l'implementazione può conservare spazio aggiuntivo.
Accedere agli elementi
Esistono quattro modi:
v[i]— senza controllo dei limitiv.at(i)— con controllo dei limiti, genera un'eccezionev.front()— primo elementov.back()— ultimo elemento
empty e clear
Controlli se il vettore è vuoto con empty(). Rimuova tutti gli elementi con clear(): la capacità non cambia.
Verifica rapida
Perché push_back ha una complessità ammortizzata O(1)?
Riepilogo
std::vector è un array espandibile con accesso casuale O(1). size() indica il numero di elementi, mentre capacity() indica lo spazio allocato. reserve() evita le riallocazioni quando si conosce la dimensione finale.
Domande Frequenti
La lezione «Basi di std::vector: push_back, size, capacity» è gratuita?
Sì — il testo completo di «Basi di std::vector: push_back, size, capacity» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso C++ Academy, passa a CoddyKit PRO. Il corso C++ Academy include 4 lezioni in totale.
Cosa imparerò in «Basi di std::vector: push_back, size, capacity»?
Crei, ampli e analizzi i vector e comprenda la differenza tra capacity e size Eserciti C++ Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare C++ Academy?
Non è richiesta alcuna esperienza precedente. C++ Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Basi di std::vector: push_back, size, capacity»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione C++ Academy?
Sì. Ogni lezione C++ Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Basi di std::vector: push_back, size, capacity
- Iterazione sui vector: indice, range-for, iteratori
- Modifica dei vector: insert, erase, clear
- Vector, std::array e array C a confronto