Category: containers | Component type: concept |
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>. |
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 |
[1] The value type must be pair<const key_type, data_type>, rather than pair<key_type, data_type>, because of the Associative Container 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 Iterator 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.