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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::list::sort - std::list::sort

Synopsis
	  void sort();		     (1)
	  template< class Compare >  (2)
	  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
		 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 list . This
	  function also	differs	from std::sort in that it does not require the
       element type of
	  the list to be swappable, preserves the values of all	iterators, and
       performs	a
	  stable sort.

Example
       // Run this code

	#include <iostream>
	#include <functional>
	#include <list>

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

	int main()
	{
	    std::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::list::sort(3)

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

home | help