Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::set(3)		      C++ Standard Libary		   std::set(3)

NAME
       std::set	- std::set

Synopsis
	  Defined in header <set>
	  template<

	  class	Key,
	  class		     Compare		 =	       std::less<Key>,
       (1)
	  class	Allocator = std::allocator<Key>

	  > class set;
	  namespace pmr	{

	  template <class Key, class Compare = std::less<Key>>
	  using		set	    =	       std::set<Key,	      Compare,
       (2) (since C++17)
	  std::pmr::polymorphic_allocator<Key>>;

	  }

	  std::set  is	an associative container that contains a sorted	set of
       unique objects of
	  type Key. Sorting is done using the key comparison function Compare.
       Search,
	  removal, and insertion operations have logarithmic complexity.  Sets
       are usually
	  implemented as red-black trees.

	  Everywhere  the  standard  library  uses  the	 Compare requirements,
       uniqueness is
	  determined by	using the equivalence relation.	 In  imprecise	terms,
       two objects a and
	  b are	considered equivalent if neither compares less than the	other:
       !comp(a,	b) &&
	  !comp(b, a).

	  std::set  meets  the	requirements  of Container, AllocatorAwareCon-
       tainer,
	  AssociativeContainer and ReversibleContainer.

Member types
	  Member type		    Definition
	  key_type		    Key
	  value_type		    Key
	  size_type		       Unsigned	   integer    type    (usually
       std::size_t)
	  difference_type		Signed	   integer    type    (usually
       std::ptrdiff_t)
	  key_compare		    Compare
	  value_compare		    Compare
	  allocator_type	    Allocator
	  reference		    value_type&
	  const_reference	    const value_type&
	  pointer					    Allocator::pointer
       (until C++11)
				    std::allocator_traits<Allocator>::pointer
       (since C++11)
				    Allocator::const_pointer
       (until
	  const_pointer
       C++11)
				    std::allocator_traits<Alloca-
       tor>::const_pointer (since
										    C++11)
	  iterator		     Constant  LegacyBidirectionalIterator  to
       value_type
	  const_iterator	      LegacyBidirectionalIterator   to	 const
       value_type
	  reverse_iterator	    std::reverse_iterator<iterator>
	  const_reverse_iterator    std::reverse_iterator<const_iterator>
	  node_type (since C++17)   a specialization of	node handle represent-
       ing a container
				    node
				    type  describing the result	of inserting a
       node_type, a
				    specialization of

				    template <class Iter, class	NodeType>
	  insert_return_type (since struct /*unspecified*/ {
	  C++17)		    Iter position;
				    bool inserted;
				    NodeType node;
				    };
				    instantiated with template arguments iter-
       ator and
				    node_type.

Member functions
	  constructor	constructs the set
			(public	member function)
	  destructor	destructs the set
			(public	member function)
	  operator=	assigns	values to the container
			(public	member function)
	  get_allocator	returns	the associated allocator
			(public	member function)

Iterators
	  begin		returns	an iterator to the beginning
	  cbegin	(public	member function)
	  (C++11)
	  end		returns	an iterator to the end
	  cend		(public	member function)
	  (C++11)
	  rbegin	returns	a reverse iterator to the beginning
	  crbegin	(public	member function)
	  (C++11)
	  rend		returns	a reverse iterator to the end
	  crend		(public	member function)
	  (C++11)

Capacity
	  empty		checks whether the container is	empty
			(public	member function)
	  size		returns	the number of elements
			(public	member function)
	  max_size	returns	the maximum possible number of elements
			(public	member function)

Modifiers
	  clear		clears the contents
			(public	member function)
			inserts	elements
	  insert	or nodes
			(since C++17)
			(public	member function)
	  emplace	constructs element in-place
	  (C++11)	(public	member function)
	  emplace_hint	constructs elements in-place using a hint
	  (C++11)	(public	member function)
	  erase		erases elements
			(public	member function)
	  swap		swaps the contents
			(public	member function)
	  extract	extracts nodes from the	container
	  (C++17)	(public	member function)
	  merge		splices	nodes from another container
	  (C++17)	(public	member function)

Lookup
	  count		returns	the number of elements matching	specific key
			(public	member function)
	  find		finds element with specific key
			(public	member function)
	  contains	checks if the container	contains element with specific
       key
	  (C++20)	(public	member function)
	  equal_range	returns	range of elements matching a specific key
			(public	member function)
	  lower_bound	returns	an iterator to the first element not less than
       the given key
			(public	member function)
	  upper_bound	returns	an iterator to the first element greater  than
       the given key
			(public	member function)

Observers
	  key_comp	returns	the function that compares keys
			(public	member function)
	  value_comp	 returns the function that compares keys in objects of
       type value_type
			(public	member function)

Non-member functions
	  operator==
	  operator!=
	  operator<
	  operator<=
	  operator>
	  operator>=	      lexicographically	compares the values in the set
	  operator<=>	      (function	template)
	  (removed in C++20)
	  (removed in C++20)
	  (removed in C++20)
	  (removed in C++20)
	  (removed in C++20)
	  (C++20)
	  std::swap(std::set) specializes the std::swap	algorithm
			      (function	template)
	  erase_if(std::set)  Erases all elements satisfying specific criteria
	  (C++20)	      (function	template)

	 Deduction guides (since C++17)

Notes
	  The member types iterator and	const_iterator may be aliases  to  the
       same type. This
	  means	 defining  a pair of function overloads	using the two types as
       parameter types
	  may violate the One Definition Rule. Since iterator  is  convertible
       to
	  const_iterator, a single function with a const_iterator as parameter
       type will work
	  instead.

	 Defect	Reports

	  The following	behavior-changing defect reports were applied retroac-
       tively to
	  previously published C++ standards.

	    DR	   Applied  to	      Behavior as published	       Correct
       behavior
	  LWG 103 C++98	     iterator allows  modification  of	keys  iterator
       made constant

http://cppreference.com		  2022.07.31			   std::set(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::set&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help