# Design

The `pb_ds` namespace contains:

1. Exception classes (see Interface::Exceptions::Common)
2. Invalidation-guarantee tags (see Design::Invalidation Guarantees and Interface::Data-Structure Tags and Traits::Invalidation-Guarantee Tags).
3. Associative Containers (see Design::Associative Containers::Tree-Based Containers, Design::Associative Containers::Trie-Based Containers, Design::Associative Containers::Hash-Based Containers, and Design::Associative Containers::List-Based Containers, and Interface::Containers::Associative Containers).
4. Associative Container tags and traits (see Design::Associative Containers::Data-Structure Genericity, Interface::Data-Structure Tags and Traits::Data-Structure Tags::Associative-Containers, and Interface::Data-Structure Tags and Traits::Data-Structure Traits::Associative-Containers).
5. Associative Container policies (see Design::Associative Containers::Tree-Based Containers, Design::Associative Containers::Trie-Based Containers, Design::Associative Containers::Hash-Based Containers, and Design::Associative Containers::List-Based Containers, and Interface::Container Policy Classes).
6. Mapped types for setting the mapping semantics of associative containers (see Tutorial::Associative Containers::Associative Containers Others than Maps and Interface::Mapped-Type Policies).
7. Priority Queues (see Design::Priority Queues and Interface::Containers::Priority Queues).
8. Priority Queue tags and traits (see Design::Priority Queues::Traits, Interface::Data-Structure Tags and Traits::Data-Structure Tags::Priority Queues, and Interface::Data-Structure Tags and Traits::Data-Structure Traits::Priority Queues).

Associative-Container Design describes associative-container design.

Priority-Queue Design describes priority-queue design.