Understanding the design of containers, iterators, and algorithms
Containers are types that represent collections of elements. These collections can be implemented based on a variety of data structures, each with different semantics: lists, queues, trees, and so on. The standard library provides three categories of containers:
- Sequence containers: vector,deque,list,array, andforward_list
- Associative containers: set,map,multiset, andmultimap
- Unordered associative containers: unordered_set,unordered_map,unordered_multiset, andunordered_multimap
In addition to this, there are also container adaptors that provide a different interface for sequence containers. This category includes the stack, queue, and priority_queue classes. Finally, there is a class called span that represents a non-owning view over a contiguous sequence of objects.
The rationale for these containers to be templates was presented in Chapter 1, Introduction to Templates. You don’...
 
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
     
         
                 
                 
                 
                 
                 
                 
                 
                 
                