Traduzioni di questa pagina?:

end

Sintassi:

    #include <vector>
    iterator end();
    const_iterator end() const;

La funzione end() ritorna un iteratore che punta alla prima posizione libera dopo l'ultimo elemento contenuto nel vettore. Di conseguenza, per poter accedere all'ultimo elemento presente nel vettore, il valore dell'iteratore dev'essere decrementato di un unità.

Nell'esempio seguente la prima linea che invoca “cout” mostra un risultato indeterminato, mentre la seconda chiamata a “cout” mostra l'ultimo elemento realmente contenuto nel vettore.

    vector<int> v1;
    v1.push_back( 0 );
    v1.push_back( 1 );
    v1.push_back( 2 );
    v1.push_back( 3 );
 
    int bad_val = *(v1.end());
    cout << "bad_val is " << bad_val << endl;
 
    int good_val = *(v1.end() - 1);
    cout << "good_val is " << good_val << endl;

Il prossimo esempio mostra come begin() e end() possono essere usati per iterare attraverso gli elementi di un vettore.

    vector<int> v1( 3, 5 );
    vector<int>::iterator it;
    for( it = v1.begin(); it != v1.end(); it++ ) {
      cout << *it << endl;
    }

L'iteratore viene inizializzato con una chiamata a begin(). Dopo che il blocco di istruzioni del loop viene eseguito l'iteratore viene incrementato e quindi confrontato con il risultato della chiamata ad end(). Siccome end() ritorna un iteratore che punta al primo elemento dopo l'ultimo contenuto nel vettore, il loop termina una volta che tutti gli elementi del vettore sono stati mostrati

end() gira in tempo costante.

Argomenti collegati: begin, rbegin, rend