|
| |
|
| Category: containers | | Component type: concept |
Description
A Pair Associative Container is an AssociativeContainer that associates a key with some other object. The value type of a Pair Associative Container is pair<const key_type, data_type>. [1]
Refinement of
AssociativeContainer
Associated types
One new type is introduced, in addition to the types defined in the AssociativeContainer requirements. Additionally, Pair Associative Container introduces one new type restriction
| Key type | X::key_type | The type of the key associated with X::value_type. |
| Data type | X::data_type | The type of the data associated with X::value_type. A Pair Associative Container can be thought of as a mapping from key_type to data_type. |
| Value type | X::value_type | The type of object stored in the container. The value type is required to be pair<const key_type, data_type>. |
Notation
X | A type that is a model of Pair Associative Container |
a | Object of type X |
t | Object of type X::value_type |
d | Object of type X::data_type |
k | Object of type X::key_type |
p, q | Object of type X::iterator |
Definitions
Valid expressions
None, except for those defined in the AssociativeContainer requirements.
Expression semantics
Complexity guarantees
Invariants
Models
Notes
[1] The value type must be pair<const key_type, data_type>, rather than pair<key_type, data_type>, because of the AssociativeContainer invariant of key immutability. The data_type part of an object in a Pair Associative Container may be modified, but the key_type part may not be. Note the implication of this fact: a Pair Associative Container cannot provide mutable iterators (as defined in the trivial requirements), because the value type of a mutable iterator must be Assignable, and pair<const key_type, data_type> is not Assignable. However, a Pair Associative Container can provide iterators that are not completely constant: iterators such that the expression (*i).second = d is valid.
See also
AssociativeContainer, SimpleAssociativeContainer