Declararea și parcurgerea tablourilor unidimensionale



Vectorii (sau tablourile) în C++ sunt structuri de date care permit stocarea unei colecții de elemente de același tip.


Declararea vectorilor

Sintaxă:

tip_data  nume_vector[dimensiune];

Exemplu:

#include < iostream >
using namespace std;
int main()
{
        int vector[10]; // Declară un vector de 10 elemente de tip int
        return 0;
}

Ne putem imagina tabloul declarat mai sus astfel (valorile elementelor sunt aleatorii):





Spunem că fiecare element are un indice. Indicii unui tablou sunt între 0 și Dimensiune-1, deci în exemplul nostru între 0 și 9.


Referirea unui element

Referirea unui element se face prin operatorul de indexare, [], care are prioritate maximă. De exemplu:

X[0], X[5], X[i]

Aici X este identificatorul tabloului (denumirea), iar 0, 5 sau i sunt indicii. Este necesar ca programatorul (adică TU!) să se asigure că valoarea indicelui se găsește în intervalul potrivit pentru tabloul dat (în exemplul nostru între 0 și 9).


Parcurgerea vectorilor

Parcurgerea unui tablou reprezintă referirea fiecărui element al tabloului, într-o anumită ordine. Referirea elementului se face prin intermediul indicelui, cu ajutorul operatorului de indexare.

Următorul exemplu declară un tablou cu 100 de elemente și memorează în primele n elemente ale tabloului valoarea 1. După cum știm deja, n trebuie să respecte relația n<=100. În caz contrar, comportamentul programului devine impredictibil – foarte probabil execuția sa va fi oprită de sistemul de operare.


Exemplu:

int X[100], n;
//n = .... ;
for(int i = 0 ; i < n ; i ++)
X[i] = 1;

De regulă, parcurgerea tabloului se face în ordinea crescătoare a indicelor, de la 0 la n-1. Făcând o analogie cu axa numerelor, putem spune că parcurgerea se face de la stânga spre dreapta. Tabloul poate fi parcurs și de la dreapta la stânga, adică în ordinea descrescătoare a indicilor, de la n-1 la 0:


for(int i = n - 1 ; i >= 0 ; i --)
     X[i] = 1;

Citirea unui vector

int X[100], n;


De fapt, în cele mai multe cazuri nu se poate face citirea unui tablou unidimensional (vector), adică:

 cin >> X;

Instrucțiunea de mai sus duce de regulă la eroare de sintaxă. În schimb, se pot citi elementele tabloului, în ordine, cu ajutorul parcurgerii:


cin >> n;
for(int i = 0 ; i < n ; i ++)
    cin >> X[i];

Afișarea unui vector

int X[100], n;

La fel ca în cazul citirii, în cele mai multe cazuri nu se poate face nici afișarea unui vector, adică:

 cout <<  X;

Elementele tabloului se pot afișa prin parcurgere, în ordinea dorită:


for(int i = 0 ; i < n ; i ++)
    cout << X[i] <<" ";

Sau


for(int i = n - 1 ; i >= 0 ; i --)
    cout << X[i] <<" ";

Accessibility Options

Color Contrast

Text Size

Text Spacing

Reading Aids