# C++ Notes: STL: CommonContainer Functions

This brief overview shows that many containers can be accessed by the same functions. There are some differences in details (eg, the associative containers (map and multimap) use keys).

| Sequence | Associative | Adapter
--- | --- | --- | ---
Function | Ve | DQ | Li | Ma | MM | Se | MS | ST | Qu | PQ
Constructors and Destructor
`Container c` | Y | Y | Y | Y | Y | Y | Y | ? | ? | ?
`Container c1(c2)` | Y | Y | Y | Y | Y | Y | Y | ? | ? | ?
`Container c(beg, end)` | Y | Y | Y | Y | ? | ? | ? | ? | ? | ?
`c.~Container()` | Y | Y | Y | Y | Y | Y | ? | ? | ? | ?
Creating Iterators
`c.begin()` | Y | Y | Y | Y | Y | Y | Y | - | - | -
`c.end()` | Y | Y | Y | Y | Y | Y | Y | - | - | -
`c.rbegin()` | Y | Y | Y | Y | Y | Y | Y | - | - | -
`c.rend()` | Y | Y | Y | Y | Y | Y | Y | - | - | -
Operators
| ? | ? | ? | ? | ? | ? | ? | ? | ? | ?
| ? | ? | ? | ? | ? | ? | ? | ? | ? | ?
| ? | ? | ? | ? | ? | ? | ? | ? | ? | ?
Accessing elements
`c.back()` | Y | Y | Y | - | - | - | - | - | Y | -
`c.front()` | Y | Y | Y | - | - | - | - | - | Y | -
`c[x]` | Y | Y | - | Y | Y | - | - | - | - | -
`c.at(x)` | Y | Y | - | - | - | - | - | - | - | -
`c.top()` | - | - | - | - | - | - | - | Y | - | Y
Inserting and removing elements
`c.clear()` | Y | Y | Y | Y | Y | Y | Y | - | - | -
`c.insert(pos, elem)` | ? | ? | ? | ? | ? | ? | ? | ? | ? | ?
`c.erase(beg, end)` | ? | ? | ? | ? | ? | ? | ? | ? | ? | ?
| ? | ? | ? | ? | ? | ? | ? | ? | ? | ?
| ? | ? | ? | ? | ? | ? | ? | ? | ? | ?
Other
`c.size()` | Y | Y | Y | Y | Y | Y | Y | Y | ? | ?
`c.empty()` | Y | Y | Y | Y | Y | Y | Y | Y | ? | ?