The iterator returned from a.erase(q) points to the element immediately following q prior to the element being erased.
If no prior element exists for a.erase then a.end() is returned.
For every sequence defined in this clause the constructor
template <class InputIterator>
X(InputIterator f, InputIterator l,
const Allocator& a = Allocator())
X(static_cast<typename X::size_type>(f), static_cast<typename X::value_type>(l),a)
Member functions in the forms:
template <class InputIterator> rt fx1(iterator p, InputIterator f, InputIterator l); template <class InputIterator> rt fx2(InputIterator f, InputIterator l); template <class InputIterator> rt fx3(iterator i1, iteraror i2, InputIterator f, InputIterator l);
fx1(p, static_cast<typename X::size_type>(f), static_cast<typename X::value_type>(l)); fx2(static_cast<typename X::size_type>(f), static_cast<typename X::value_type>(l)); fx3(i1, i2, static_cast<typenameX::size_type>(f), static_cast<typename X::value_type>(l));
The member function at() provides bounds-checked access to container elements.
The member function at() throws out_of_range if n >= a.size().