...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Front Page / Sequences / Concepts / Extensible Associative Sequence |
An Extensible Associative Sequence is an Associative Sequence that supports insertion and removal of elements. In contrast to Extensible Sequence, Extensible Associative Sequence does not provide a mechanism for inserting an element at a specific position.
In the following table and subsequent specifications, s is an Associative Sequence, pos is an iterator into s, and x and k are arbitrary types.
In addition to the Associative Sequence requirements, the following must be met:
Expression | Type | Complexity |
---|---|---|
insert<s,x>::type | Extensible Associative Sequence | Amortized constant time |
insert<s,pos,x>::type | Extensible Associative Sequence | Amortized constant time |
erase_key<s,k>::type | Extensible Associative Sequence | Amortized constant time |
erase<s,pos>::type | Extensible Associative Sequence | Amortized constant time |
clear<s>::type | Extensible Associative Sequence | Amortized constant time |
The semantics of an expression are defined only where they differ from, or are not defined in Associative Sequence.
Expression | Semantics |
---|---|
insert<s,x>::type | Inserts x into s; the resulting sequence r is equivalent to s except that at< r, key_type<s,x>::type >::type is identical to value_type<s,x>::type; see insert. |
insert<s,pos,x>::type | Equivalent to insert<s,x>::type; pos is ignored; see insert. |
erase_key<s,k>::type | Erases elements in s associated with the key k; the resulting sequence r is equivalent to s except that has_key<r,k>::value == false; see erase_key. |
erase<s,pos>::type | Erases the element at a specific position; equivalent to erase_key<s, deref<pos>::type >::type; see erase. |
clear<s>::type | An empty sequence concept-identical to s; see clear. |