Noțiunea de vector

Bază~12 min12 pași

De ce contează?

Ai 10 cutii numerotate pe un raft, fiecare conținând câte un număr. Ca să iei numărul din cutia 3 nu deschizi toate cutiile — spui direct „cutia 3". Un vector funcționează exact la fel: o colecție de valori numerotate, accesate instant prin index.

Ce este un vector?

Un vector (sau tablou unidimensional) este o colecție de valori de același tip, stocate consecutiv în memorie și identificate printr-un index.

v
5
3
8
1
9
index
0
1
2
3
4
Vector cu 5 elemente. Accesezi orice valoare instant prin index: v[2] = 8.

Trei proprietăți esențiale:

  • Toate elementele au același tip (int, long long etc.).
  • Indexul începe de la 0, nu de la 1.
  • Accesul la orice element e O(1) — instant, indiferent de poziție.

Declarație și citire în C++

#include <iostream>
using namespace std;

int main() {
    int n;
    cin >> n;           // numarul de elemente

    int v[1001];        // rezerva spatiu pentru max 1000 elem (index 0..999)
    for (int i = 0; i < n; i++) {
        cin >> v[i];    // citim element cu element
    }

    for (int i = 0; i < n; i++) {
        cout << v[i] << " ";
    }
    return 0;
}

Exemplu: Input 5 / 5 3 8 1 9 → Output 5 3 8 1 9

Observația-cheie

int v[1001] declarat în afara lui main (variabilă globală) e inițializat automat cu 0. Declarat în main, are valori nedefinite. La OJI/ONI, vectorii mari se declară global pentru a evita stack overflow și pentru inițializare automată.

Inițializare directă

int v[] = {5, 3, 8, 1, 9};   // n = 5, dedus automat
int w[5] = {0};               // toate elementele = 0
int a[5] = {1, 2};            // a[0]=1, a[1]=2, a[2]=a[3]=a[4]=0

Accesul la elemente

cout << v[0];   // primul element: 5
cout << v[4];   // ultimul (din 5): 9
v[2] = 100;     // modifica al treilea element

Vizualizare

Construiește-ți propriul vector și vezi cum accesezi orice element direct prin index — instant, fără să parcurgi restul:

Indiciu

Folosește și pentru a avansa pas cu pas, sau Redă pentru animație automată. Apasă Laborator ca să testezi cu vectorul tău.

Greșeli frecvente

Greșeala 1: v[n] — accesezi elementul cu index n, care e în afara vectorului (indici valizi: 0..n-1). Provoacă comportament nedefinit sau crash.

Greșeala 2: Declari int v[n] cu n citit din input — C++ standard nu permite tablouri cu dimensiune variabilă. Declară cu dimensiunea maximă din enunț: int v[1001].

Greșeala 3: Pornești bucla de la i = 1 în loc de i = 0 — ratezi primul element și citești unul în plus la sfârșit.

Recapitulare

  • Un vector stochează mai multe valori de același tip, accesate prin index (de la 0).
  • Declarația int v[1001] rezervă spațiu; citirea se face cu cin >> v[i] în buclă.
  • Indexul maxim valid este n-1, nu n.

Întrebarea 1 / 3

Cum accesezi al doilea element al vectorului v?