Count | a.count(k) | | size_type |
Expression semantics Name | Expression | Precondition | Semantics | Postcondition |
Range constructor | X(i, j) X a(i, j); | [i,j) is a valid range. | Creates an associative container that contains all of the elements in the range [i,j) that have unique keys. | size() is less than or equal to the distance from i to j. |
Insert element | a.insert(t) | | Inserts t into a if and only if a does not already contain an element whose key is the same as the key of t. The return value is a pair P. P.first is an iterator pointing to the element whose key is the same as the key of t. P.second is a bool: it is true if t was actually inserted into a, and false if t was not inserted into a, i.e. if a already contained an element with the same key as t. | P.first is a dereferenceable iterator. * (P.first) has the same key as t. The size of a is incremented by 1 if and only if P.second is true. |
Insert range | a.insert(i, j) | [i, j) is a valid range. | Equivalent to a.insert(t) for each object t that is pointed to by an iterator in the range [i, j). Each element is inserted into a if and only if a does not already contain an element with the same key. | The size of a is incremented by at most j – i. |
Count | a.count(k) | | Returns the number of elements in a whose keys are the same as k. | The return value is either 0 or 1. |
Complexity guarantees Average complexity for insert element is at most logarithmic.
Average complexity for insert range is at most O(N * log(size() + N)), where N is j – i.
Invariants Uniqueness | No two elements have the same key. Equivalently, this means that for every object k of type key_type, a.count(k) returns either 0 or 1. |
Models • set
• map
• hash_set
• hash_map
Notes [1] At present (early 1998), not all compilers support 'member templates'. If your compiler supports member templates then i and j may be of any type that conforms to the Input Iterator requirements. If your compiler does not yet support member templates, however, then i and j must be of type const T* or of type X::const_iterator.
See also Associative Container, Multiple Associative Container, Unique Sorted Associative Container, Multiple Sorted Associative Container
Multiple Associative Container
Category: containers
Component type: concept
Description