In C++, containers are special objects that stores a collection of other objects (its elements). They are implemented with class templates, which allow them to store functionally any type. C++ offers several containers within the Standard Template Library.

Core containers include dynamic arrays (vectors), doubly linked lists, and deques.

Container adapters are template classes implemented on top of other classes. For instance, std::stack and std::queue are implemented as a deque. Container adapters give us the flexibility to set a container class different than the default underlying class.