feature image - https://images.unsplash.com/photo-1641055621040-8fb3796a5a92?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1470&q=80

lunghezza di array e vettori in C++

Lunghezza di un array in C++ c style

come abbiamo visto, un array c-style è dichiarato definendo anceh la sua dimensione, risulta tuttavia impossibile durante l’esecuzione ottenere la sua lunghezza, a meno di non ricorrere a trick non supportati da tutti i comilatori.

La gestione della lunghezza di un vettore c-style si potrà fare utilizzando una costante che definisce la dimensione dell’array e che potrà essere utilizzata per stampare la sua capienza. il problema è che spesso solo una parte delle posizioni dell’ array sarà davvero utilizzata dal programma e noi saremmo interessati a conoscere solo il numero di celle effettivamente utilizzate e non la dimensione massima.

Per fare questo possiamo ricorre ad una strategia: utilizziamo una ulteriore variabile intera che tenga traccia del numero effettivo di elementi utilizzati all’ interno del vettore. Dovremo prestare attenzione ad incrementare la variabile all’ aggiunta di un nuovo elemento e decrementata alla cancellazione di un elemento dell’array.

array dichiarati utilizzando la classe std::array

Quello che possiamo invece fare in modo facile è ottenere la lunghezza di un array dichiarato utilizzando la classe std::array, utilizzando il metodo size() che la classe ci mette a disposizione.

Se vogliamo creare un array di 10 float e chiamarlo arr dovremo quindi utilizzare il seguente codice

#include <array>

std::array<float,10> arr;

per stampare a video la lunghezza dell’array dovremo quindi utilizzare la seguente istruzione, che ritornerà il numero corrispondente al numero di elementi contenuti nell’ array.

arr.size();

vettori dichiarati utilizzando la classe std::vector

Per i vettori potremo utilizzare lo stesso metodo size() che la classe std::vector condivide con std::array. Un semplice programma che crea un vettore, inserisce gli elementi 2 e 3 e stampa a video la dimenzione del vettore sarà quindi il seguente

#include <iostream>
#include <vector>

int main()
{
std::vector vec;
vec.push_back(2); // aggiungo il numero 2
vec.push_back(3); // aggiungo il numero 3

std::cout << vec.size();

return 0;
}

Altri Esercizi

Esercizi sugli array in C++

Esercizi sulle funzioni in C++

Esercizi sulle matrici / array bidimensionali in C++

Andrea Pollini

Matematico, informatico.