Синтаксис:
#include <deque> iterator end(); const_iterator end() const;
Функция end() возвращает итератор на место после последнего элемента двусторонней очереди.
Обратите внимание, что перед тем, как обратиться к последнему элементу через вызов end(), нужно сначала декрементировать итератор.
Следующий пример показывает, как begin() и end() используются для прохода по всем элементам двусторонней очереди:
deque<int> dq1( 5, 789 ); deque<int>::iterator it; for( it = dq1.begin(); it != dq1.end(); it++ ) { cout << *it << endl; }
Итератор инициализируется с помощью вызова begin(). После выполнения тела цикла итератор инкрементируется и проверяется на неравенство результату вызова end(). Так как end() возвращает итератор, указывающий на место после последнего элемента вектора, цикл остановится только после того, как будут пройдены все элементы двусторонней очереди.
end() выполняется за константное время.