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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::forward_list::sort - std::forward_list::sort

Synopsis
	  void sort();		     (1) (since	C++11)
	  template< class Compare >  (2) (since	C++11)
	  void sort( Compare comp );

	  Sorts	 the  elements in ascending order. The order of	equal elements
       is preserved. The
	  first	version	uses operator< to compare  the	elements,  the	second
       version uses the
	  given	comparison function comp.

	  If an	exception is thrown, the order of elements in *this is unspec-
       ified.

Parameters
		 comparison function object (i.e. an object that satisfies the
       requirements of
		 Compare)  which  returns  true	 if the	first argument is less
       than (i.e. is
		 ordered before) the second.

		 The signature of the comparison function should be equivalent
       to the
		 following:

		 bool cmp(const	Type1 &a, const	Type2 &b);
	  comp -
		 While the signature does not need to have const &, the	 func-
       tion must not
		 modify	 the  objects  passed to it and	must be	able to	accept
       all values of type
		 (possibly const) Type1	and Type2 regardless of	value category
       (thus, Type1 &
		 is not	allowed
		 , nor is Type1	unless for Type1 a move	 is  equivalent	 to  a
       copy
		 (since	C++11)).
		 The types Type1 and Type2 must	be such	that an	object of type
		 forward_list<T,Allocator>::const_iterator can be dereferenced
       and then
		 implicitly converted to both of them.

Return value
	  (none)

Complexity
	  Approximately	N log N	comparisons, where N is	the number of elements
       in the list.

Notes
	  std::sort  requires  random  access  iterators and so	cannot be used
       with forward_list .
	  This function	also differs from std::sort in that it	does  not  re-
       quire the element
	  type	of  the	 forward_list to be swappable, preserves the values of
       all iterators, and
	  performs a stable sort.

Example
       // Run this code

	#include <iostream>
	#include <functional>
	#include <forward_list>

	std::ostream&	operator<<(std::ostream&   ostr,    const    std::for-
       ward_list<int>& list)
	{
	    for	(auto &i : list) {
		ostr <<	" " << i;
	    }
	    return ostr;
	}

	int main()
	{
	    std::forward_list<int> list	= { 8,7,5,9,0,1,3,2,6,4	};

	    std::cout << "before:     "	<< list	<< "\n";
	    list.sort();
	    std::cout << "ascending:  "	<< list	<< "\n";
	    list.sort(std::greater<int>());
	    std::cout << "descending: "	<< list	<< "\n";
	}

Output:
	before:	     8 7 5 9 0 1 3 2 6 4
	ascending:   0 1 2 3 4 5 6 7 8 9
	descending:  9 8 7 6 5 4 3 2 1 0

http://cppreference.com		  2022.07.31	    std::forward_list::sort(3)

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

home | help