Chapter 6. Bimap and Multi-index Containers
The Standard Library has ordered and unordered associative containers for storing objects and looking them up efficiently using some
key. The key could be a text type, numeric type, or first-class objects. For ordered containers such as std::set
and std::map
, the keys must have a well-defined ordering relation that allows any set of keys to be sorted. For unordered containers, it must be possible to compute an integer hash value for each key, and additionally, determine whether any two keys are equivalent for some definition of equivalence. The key represents an index or criterion for lookup, and all the Standard Library associative containers support lookup using only a single criterion. In other words, you cannot efficiently look up objects using multiple, independent criteria.
Let us suppose you have a type called PersonEntry
to describe a person. The PersonEntry
type has attributes like name, age, phone number, and so on. You would...