set
<set>
Set
Sets are a kind of associative container that stores unique elements, and in which the elements themselves are the keys. Associative containers are containers especially designed to be efficient accessing its elements by their key (unlike sequence containers, which are more efficient accessing elements by their relative or absolute position). Internally, the elements in a set are always sorted from lower to higher following a specific strict weak ordering criterion set on container construction.Sets are typically implemented as binary search trees. Therefore, the main characteristics of set as an associative container are:- Unique element values: no two elements in the set can compare equal to each other. For a similar associative container allowing for multiple equivalent elements, see multiset.
- The element value is the key itself. For a similar associative container where elements are accessed using a key, but map to a value different than this key, see map.
- Elements follow a strict weak ordering at all times. Unordered associative arrays, like unordered_set, are available in implementations following TR1.
|
|
- Key: Key type: type of the elements contained in the container. Each elements in a set is also its key.
- Compare: Comparison class: A class that takes two arguments of the same type as the container elements and returns a bool. The expression comp(a,b), where comp is an object of this comparison class and a and bare elements of the container, shall return true if a is to be placed at an earlier position than b in a strict weak ordering operation. This can either be a class implementing a function call operator or a pointer to a function (see constructor for an example). This defaults to less<Key>, which returns the same as applying the less-than operator (a<b). The set object uses this expression to determine the position of the elements in the container. All elements in a set container are ordered following this rule at all times.
- Allocator: Type of the allocator object used to define the storage allocation model. By default, theallocator class template for type Key is used, which defines the simplest memory allocation model and is value-independent.
Construct set
Constructs a set container object, initializing its contents depending on the constructor version used:Example
|
|
set::begin
iterator begin (); const_iterator begin () const;
Return iterator to beginning
Returns an iterator referring to the first element in the set container.Example
|
|
myset contains: 13 23 42 65 75 |
set::clear
void clear ( );
Clear content
All the elements in the set container are dropped: their destructors are called, and then they are removed from the container, leaving it with a size of 0.Example
|
|
myset contains: 100 200 300 myset contains: 1101 2202 |
set::count
size_type count ( const key_type& x ) const;
Count elements with a specific key
Searches the container for an element with a key of x and returns the number of times the element appears in the container. Because set containers do not allow for duplicate keys, this means that the function actually returns 1 if the element is found, and zero otherwise.Example
|
|
0 is not an element of myset. 1 is not an element of myset. 2 is not an element of myset. 3 is an element of myset. 4 is not an element of myset. 5 is not an element of myset. 6 is an element of myset. 7 is not an element of myset. 8 is not an element of myset. 9 is an element of myset. |
set::empty
bool empty ( ) const;
Test whether container is empty
Returns whether the set container is empty, i.e. whether its size is 0.Example
|
|
myset contains: 10 20 30 |
set::end
iterator end (); const_iterator end () const;
Return iterator to end
Returns an iterator referring to the past-the-end element in the set container.Example
|
|
myset contains: 13 23 42 65 75 |