| 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. |