0Pricing
C++ Academy · Lezione

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 d

push_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 place

size 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 limiti
  • v.at(i) — con controllo dei limiti, genera un'eccezione
  • v.front() — primo elemento
  • v.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

  1. Basi di std::vector: push_back, size, capacity
  2. Iterazione sui vector: indice, range-for, iteratori
  3. Modifica dei vector: insert, erase, clear
  4. Vector, std::array e array C a confronto
← Torna a C++ Academy