Salt la conținutul principal
Modulul 5 · Lecția 1 din 211/18 în curs~12 min
Lecții din modul (1/2)

Matrice și Vectori

În C++, gestionarea colecțiilor de date se face în principal prin două instrumente: matrice în stil vechi (matrice în stil C) și vectori (std::vector). Înțelegerea diferenței dintre memoria statică și cea dinamică este fundamentală pentru scrierea unui cod eficient.


1. Matrice statice (Matrice în stil C)

O matrice este o colecție de elemente de același tip stocate în locații de memorie adiacente. Mărimea unui tablou static trebuie să fie cunoscută în momentul compilării și nu poate fi modificată ulterior:

C++
int grades[5] = {18, 22, 25, 28, 30}; // Array of 5 integers

Caracteristici cheie:

  • Dimensiune fixă: nu puteți adăuga sau elimina elemente în timpul execuției.
  • Alocarea stivei: Foarte rapid de alocat și dezalocat.
  • Acces: Efectuat prin operatorul de index [] (de exemplu, grades[0] pentru primul element).

2. Vectori dinamici (std::vector)

Biblioteca de șabloane standard (STL) C++ oferă clasa std::vector, care reprezintă o matrice dinamică. Pentru a-l folosi, trebuie să includeți antetul <vector>:

C++
#include <vector>

std::vector<int> numbers; // Creates an empty vector of integers

Operațiuni comune:

  • Adăugați la sfârșit: Metoda .push_back(value) inserează un element la sfârșitul vectorului, realocând automat memoria dacă este necesar.
  • Dimensiune: Metoda .size() returnează numărul de elemente aflate în prezent în vector.
  • Acces sigur: pe lângă operatorul [], puteți utiliza metoda .at(index) (de exemplu, numbers.at(0)), care generează o excepție dacă indexul este în afara limitelor.
C++
std::vector<int> scores = {90, 85};
scores.push_back(95); // scores now contains {90, 85, 95}
std::cout << scores.size(); // Prints 3

Încercați-l singur

Exercițiu#cpp.m5.l1.e1
Încercări: 0Se încarcă…

Declarați un vector std::de numere întregi numite numere. Adăugați valorile 10, 20 și 30 în interiorul acestuia folosind metoda .push_back(), apoi imprimați dimensiunea acestuia folosind numbers.size().

Se încarcă editorul...
Afișează indiciu

Declarați vectorul cu `std::vector<int> numere;`, introduceți cele trei numere cu `.push_back(value)`și tipăriți-l cu`std::cout << numbers.size();`.

Soluție disponibilă după 3 încercări

Exercițiu#cpp.m5.l1.e2
Încercări: 0Se încarcă…

În principal, este definită o matrice de grade de 5 elemente. Scrieți o buclă for pentru a calcula suma tuturor elementelor din matrice, stocați-o în suma variabilă și imprimați-o folosind std::cout.

Se încarcă editorul...
Afișează indiciu

Folosiți o buclă `for (int i = 0; i < 5; ++i)` și însumați fiecare element din interiorul buclei cu`sum += note[i];`.

Soluție disponibilă după 3 încercări

Quiz#cpp.m5.l1.q1
Gata

Care este metoda corectă de a adăuga un element la sfârșitul unui std::vector în C++?

C++
std::vector<int> numbers; // come aggiungere il valore 50?
Opțiuni de răspuns