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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::multiset - std::multiset

Synopsis
	  Defined in header <set>
	  template<

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

	  > class multiset;
	  namespace pmr	{

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

	  }

	  std::multiset	is an associative container that contains a sorted set
       of objects of
	  type	Key.  Unlike set, multiple keys	with equivalent	values are al-
       lowed. Sorting is
	  done using the key comparison	function Compare.  Search,  insertion,
       and removal
	  operations have logarithmic complexity.

	  Everywhere  the  standard  library  uses  the	 Compare requirements,
       equivalence is
	  determined by	using the equivalence relation as  described  on  Com-
       pare. In	imprecise
	  terms, two objects a and b are considered equivalent if neither com-
       pares less than
	  the other: !comp(a, b) && !comp(b, a).

	  The  order  of  the elements that compare equivalent is the order of
       (since C++11)
	  insertion and	does not change.

	  std::multiset	meets the requirements of  Container,  AllocatorAware-
       Container,
	  AssociativeContainer and ReversibleContainer.

Template parameters
	   This	section	is incomplete
	   Reason: Add descriptions of the template parameters.

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&
				  Allocator::pointer
       (until C++11)
	  pointer		     std::allocator_traits<Allocator>::pointer
       (since C++11)

				  Allocator::const_pointer
       (until
										  C++11)
	  const_pointer				 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 representing
       a container
				  node

Member functions
	  constructor	constructs the multiset
			(public	member function)
	  destructor	destructs the multiset
			(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)
	  insert_range	inserts	a range	of elements
	  (C++23)	(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 of
       two multisets
	  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::multiset) specializes the std::swap algorithm
				   (function template)
	  erase_if(std::multiset)  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.

	      Feature-test macro       Value	Std		      Feature
	  __cpp_lib_containers_ranges 202202L (C++23) Ranges construction  and
       insertion for
						      containers

Example
	   This	section	is incomplete
	   Reason: no example

	  Defect reports

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

	    DR	  Applied to	       Behavior	as published		  Cor-
       rect behavior
	  LWG  103 C++98      iterator allows modification of keys	itera-
       tor made	constant
			     Key was not required to be
	  LWG 230 C++98	     CopyConstructible			       Key  is
       also required to
			     (a	 key  of  type	Key  might not be able to   be
       CopyConstructible
			     be	constructed)

Categories:
	    * Todo with	reason
	    * Todo no example

http://cppreference.com		  2024.06.10		      std::multiset(3)

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

home | help