I think this is the relevant clause:
ISO/IEC 14882:2003 C++ Standard 23.1.1/12 – Sequences
Table 68 lists sequence operations
that are provided for some types of
sequential containers but not others.
An implementation shall provide these
operations for all container types
shown in the "container" column, and
shall implement them so as to take
amortized constant time.
+----------------------------------------------------------------------------+
| Table 68 |
+--------------+-----------------+---------------------+---------------------+
| expression | return type | operational | container |
| | | semantics | |
+--------------+-----------------+---------------------+---------------------+
| a.front() | reference; | *a.begin() | vector, list, deque |
| | const_reference | | |
| | for constant a | | |
+--------------+-----------------+---------------------+---------------------+
| a.back() | reference; | *--a.end() | vector, list, deque |
| | const_reference | | |
| | for constant a | | |
..............................................................................
. . . . .
. . . . .
..............................................................................
| a.pop_back() | void | a.erase(--a.end()) | vector, list, deque |
......................................
answered 2011-03-16T07:32:16.067