cppreference.com > C++ Double-ended Queues > end end Syntax:
      #include <deque>
      iterator end();
      const_iterator end() const;
The end() function returns an iterator just past the end of the dequeue. Note that before you can access the last element of the dequeue using an iterator that you get from a call to end(), you'll have to decrement the iterator first. For example, the following code uses begin() and end() to iterate through all of the members of a vector:
     vector<int> v1( 5, 789 );
     vector<int>::iterator it;
     for( it = v1.begin(); it != v1.end(); it++ ) {
       cout << *it << endl;
     }
The iterator is initialized with a call to begin(). After the body of the loop has been executed, the iterator is incremented and tested to see if it is equal to the result of calling end(). Since end() returns an iterator pointing to an element just after the last element of the vector, the loop will only stop once all of the elements of the vector have been displayed. end() runs in constant time. Related topics: begin rbegin rend