• STL containers provide value semantics – they create internal copies of their elements – hence they contain the values of the objects inserted rather than the objects themselves • basic requirements for container elements – must be copyable (by a copy ctor); the copy must be equivalent to the original – must be assignable (by the assignment operator) – must be destructible (by the dtor) • the STL was designed for performance; it performs al-most no error checking – any use that violates preconditions results in undeﬁned behaviour – as example, user needs to make sure that indexes, aw/07 2