Sintassi:
#include <vector> T& at( size_type loc ); const T& at( size_type loc ) const;
La funzione at() ritorna una reference all'elemento del vettore alla posizione espressa dall'indice loc. La funzione at() è più sicura dell'operatore [] perchè genera un eccezione se il valore dell'argomento è al di fuori del limite di capacità del vettore.
Per esempio, osservate il codice seguente:
vector<int> v( 5, 1 ); for( int i = 0; i < 10; i++ ) { cout << "Element " << i << " is " << v[i] << endl; }
Questo codice fuoriesce dal limite del vettore e produrrebbe risultati potenzialmente pericolosi. Il codice seguente è molto più robusto.
vector<int> v( 5, 1 ); for( int i = 0; i < 10; i++ ) { cout << "Element " << i << " is " << v.at(i) << endl; }
Invece di tentare di accedere a posizioni in memoria che conterrebbero valori senza senso nel contesto di esecuzione di queste linee, la funzione at() si accorge che sta valicando il limite del vettore e solleva un eccezione di out_of_range
Argomenti collegati: [] operator