Skip to main content
eLearner.app
Module 5 · Lesson 1 of 211/18 in the course~12 min
Module lessons (1/2)

Arrays and Vectors

In C++, managing collections of data is primarily done through two tools: old-style arrays (C-style arrays) and vectors (std::vector). Understanding the difference between static and dynamic memory is fundamental to writing efficient code.


1. Static Arrays (C-style Arrays)

An array is a collection of elements of the same type stored in contiguous memory locations. The size of a static array must be known at compile time and cannot be changed later:

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

Key Characteristics:

  • Fixed Size: You cannot add or remove elements at runtime.
  • Stack Allocation: Very fast to allocate and deallocate.
  • Access: Done via the index operator [] (e.g., grades[0] for the first element).

2. Dynamic Vectors (std::vector)

The C++ Standard Template Library (STL) provides the std::vector class, which represents a dynamic array. To use it, you must include the <vector> header:

Code
#include <vector>

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

Common Operations:

  • Append to End: The .push_back(value) method inserts an element at the end of the vector, automatically reallocating memory if needed.
  • Size: The .size() method returns the number of elements currently in the vector.
  • Safe Access: In addition to the [] operator, you can use the .at(index) method (e.g., numbers.at(0)), which throws an exception if the index is out of bounds.
Code
std::vector<int> scores = {90, 85};
scores.push_back(95); // scores now contains {90, 85, 95}
std::cout << scores.size(); // Prints 3

Try it yourself

Exercise#cpp.m5.l1.e1
Attempts: 0Loading…

Declare a std::vector of integers named numbers. Add the values 10, 20, and 30 inside it using the .push_back() method, then print its size using numbers.size().

Loading editor…
Show hint

Dichiara il vettore con `std::vector<int> numbers;`, inserisci i tre numeri con `.push_back(valore)`e stampalo con`std::cout << numbers.size();`.

Solution available after 3 attempts

Exercise#cpp.m5.l1.e2
Attempts: 0Loading…

In main, a grades array of 5 elements is defined. Write a for loop to calculate the sum of all elements in the array, store it in the variable sum, and print it using std::cout.

Loading editor…
Show hint

Usa un ciclo `for (int i = 0; i < 5; ++i)`e somma ogni elemento all'interno del ciclo con`sum += grades[i];`.

Solution available after 3 attempts

Quiz#cpp.m5.l1.q1
Ready

What is the correct method to append an element to the end of a std::vector in C++?

Code
std::vector<int> numbers; // come aggiungere il valore 50?
Answer options