C++ Library - <set>



Introduction

A set is an Associative container which contains a sorted set of unique objects of type Key. Each element may occur only once, so duplicates are not allowed.

There are four kind of Associative containers: set, multiset, map and multimap.

The value of the elements in a set cannot be modified once in the container, i.e., the elements are always const. But they can be inserted or removed from the container.

set containers are generally slower than unordered_set containers in accessing individual elements by their key, but they allow the direct iteration on subsets based on their order.

Definition

Below is definition of std::set from <set> header file

template < 
    class Key,
    class Compare = std::less<Key>,
    class Allocator = std::allocator<Key>
> class set;

Parameters

  • Key − Type of the element contained.

    Key may be substituted by any other data type including user-defined type.

Member types

Following member types can be used as parameters or return type by member functions.

Sr.No.Member typesDefinition
1key_typeKey
2value_typeKey
3referenceAllocator::reference

value_type&

4const_referenceAllocator::const_reference

const value_type&

5pointerAllocator::pointer

std::allocator_traits<Allocator>::pointer

6const_pointerAllocator::const_pointer

std::allocator_traits<Allocator>::const_pointer

7iteratorBidirectionalIterator
8const_iteratorconstant BidirectionalIterator
9reverse_iteratorstd::reverse_iterator <iterator>
10const_reverse_iteratorstd::reverse_iterator <const_iterator>
11size_typeUnsigned Integer Type (std::size_t)
12difference_typeSigned Integer Type (std::ptrdiff_t)
13key_compareCompare
14value_compareCompare
15allocator_typeAllocator

Functions from <set>

Below is list of all methods from <set> header.

MEMBER FUNCTIONS

DEFAULT MEMBER FUNCTIONS

Sr.No.Method & Description
1Default constructor

Constructs the set container.

2Range constructor

Constructs the set container with contents of the range.

3Copy constructor

Constructs the set container with the copy of other set.

4Move constructor

Constructs the set container with the contents of other set using move semantics.

5Initializer-list constructor

Constructs the set container with contents of the inializer list.

6(destructor)

Destructs the set container.

7operator=

Assigns values to the set container.

ITERATORS

Sr.No.Method & Description
1set::begin

Returns the iterator to beginning.

2set::cbegin

Returns the const iterator to beginning.

3set::end

Returns the iterator to end.

4set::cend

Returns the const iterator to end.

5set::rbegin

Returns the reverse iterator to reverse beginning.

6set::crbegin

Return const reverse iterator to reverse beginning.

7set::rend

Returns the reverse iterator to reverse end.

8set::crend

Returns the const reverse iterator to reverse end.

CAPACITY

Sr.No.Method & Description
1set::empty

Returns wheteher the set container is empty.

2set::size

Returns the number of elements in the set container.

3set::max_size

Returns the maximum number of elements that the set container can hold.

MODIFIERS

Sr.No.Method & Description
1set::clear

Removes all elements from the set container.

2set::insert

Inserts new element in the set container.

3set::emplace

Inserts new element in the set, if its unique.

4set::emplace_hint

Inserts new element in the set, if its unique, with a hint on the inserting position.

5set::erase

Removes either a single element or a range of elements from the set container.

6set::swap

Exchanges the content of the container by the content of another set container of the same type.

LOOKUP

Sr.No.Method & Description
1set::count

Returns the number of elements with matching value in the set container.

2set::find

Searches the set container for value and returns an iterator to it if found, else returns an iterator to set::end.

3set::lower_bound

Returns an iterator pointing to the first element in the set container which is not considered to go before value.

4set::upper_bound

Returns an iterator pointing to the first element in the set container which is considered to go after value.

5set::equal_range

Returns the bounds of a range that includes all the elements in the set container that are equivalent to value.

OBSERVERS

Sr.No.Method & Description
1set::key_comp

Returns a copy of the comparison object used by the set container.

2set::value_comp

Returns a copy of the comparison object used by the set container.

ALLOCATOR

Sr.No.Method & Description
1set::get_allocator

Returns a copy of the allocator object associated with the set container.