Apache C++ Standard Library User's Guide
Chapter 16: Building Containers and Algorithms
16.1 Extending the C++ Standard Library
16.2 Building on the Standard Containers
16.2.1 Inheritance
16.2.2 Generic Inheritance
16.2.3 Generic Composition
16.3 Creating Your Own Containers
16.3.1 Meeting the Container Requirements
16.3.2 Meeting the Allocator Interface Requirements
16.3.3 Iterator Requirements
16.4 Tips and Techniques for Building Algorithms
16.4.1 The iterator_traits Template
16.4.2 The distance and advance Primitives