Перевод этой страницы?:

end

Синтаксис:

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

Функция end() возвращает итератор на место после последнего элемента вектора. Обратите внимание, что перед тем, как обратиться к последнему элементу через вызов end(), нужно сначала декрементировать итератор.

Например, в этом коде первый «cout» выведет мусор, тогда как второй действительно покажет последний элемент вектора:

    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 = " << bad_val << endl;
 
    int good_val = *(v1.end() - 1);
    cout << "good_val = " << good_val << endl;

Следующий пример показывает, как begin() и end() используются для прохода по всем элементам вектора.

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

Итератор инициализируется с помощью вызова begin(). После выполнения тела цикла итератор инкрементируется и проверяется на неравенство результату вызова end(). Так как end() возвращает итератор, указывающий на место после последнего элемента вектора, цикл остановится только после того, как будут пройдены все элементы вектора.

end() выполняется за константное время.

Смотри также: begin, rbegin, rend