1<html> 2<head> 3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4<title>Usage</title> 5<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> 6<meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> 7<link rel="home" href="../../../index.html" title="Boost.Sort"> 8<link rel="up" href="../pdqsort.html" title="2.2.- pdqsort"> 9<link rel="prev" href="../pdqsort.html" title="2.2.- pdqsort"> 10<link rel="next" href="pdqsort_benchmark.html" title="Benchmark"> 11</head> 12<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> 13<table cellpadding="2" width="100%"><tr> 14<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td> 15<td align="center"><a href="../../../../../../../index.html">Home</a></td> 16<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> 17<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> 18<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> 19<td align="center"><a href="../../../../../../../more/index.htm">More</a></td> 20</tr></table> 21<hr> 22<div class="spirit-nav"> 23<a accesskey="p" href="../pdqsort.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../pdqsort.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="pdqsort_benchmark.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> 24</div> 25<div class="section"> 26<div class="titlepage"><div><div><h4 class="title"> 27<a name="sort.single_thread.pdqsort.pdqsort_usage"></a><a class="link" href="pdqsort_usage.html" title="Usage">Usage</a> 28</h4></div></div></div> 29<p> 30 Pattern-defeating quicksort is available through two calls, <code class="literal"><code class="computeroutput">pdqsort</code></code> and <code class="literal"><code class="computeroutput">pdqsort_branchless</code></code>. 31 Both have identical guarantees, behavior and overloads as <a href="http://en.cppreference.com/w/cpp/algorithm/sort" target="_top">std::sort</a>, 32 with the exception of the C++17 parallel execution policy argument. Thus 33 you can simply replace a call to <a href="http://en.cppreference.com/w/cpp/algorithm/sort" target="_top">std::sort</a> 34 with <code class="literal"><code class="computeroutput">pdqsort</code></code>, 35 it is simply a faster implementation. It is almost always appropriate to 36 simply call <code class="literal"><code class="computeroutput">pdqsort</code></code> 37 and ignore <code class="literal"><code class="computeroutput">pdqsort_branchless</code></code>. 38 </p> 39<p> 40 <code class="literal"><code class="computeroutput">pdqsort_branchless</code></code> 41 runs significantly faster than <code class="literal"><code class="computeroutput">pdqsort</code></code> 42 for comparison functions that are branchless (for an explanation why see 43 'The Average Case' below), such as simple integer or float comparison, 44 and slightly slower when the comparison function contains branches. When 45 using an arithmetic type and a default comparison function (<a href="http://en.cppreference.com/w/cpp/utility/functional/less" target="_top">std::less</a> 46 or <a href="http://en.cppreference.com/w/cpp/utility/functional/greater" target="_top">std::greater</a>) 47 <code class="literal"><code class="computeroutput">pdqsort</code></code> 48 automatically delegates to <code class="literal"><code class="computeroutput">pdqsort_branchless</code></code>. 49 If you know that your custom comparison function is branchless and wish 50 to make use of this speedup call <code class="literal"><code class="computeroutput">pdqsort_branchless</code></code> 51 explicitly. 52 </p> 53</div> 54<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> 55<td align="left"></td> 56<td align="right"><div class="copyright-footer">Copyright © 2014-2017 Steven 57 Ross, Francisco Tapia, Orson Peters<p> 58 Distributed under the <a href="http://boost.org/LICENSE_1_0.txt" target="_top">Boost 59 Software License, Version 1.0</a>. 60 </p> 61</div></td> 62</tr></table> 63<hr> 64<div class="spirit-nav"> 65<a accesskey="p" href="../pdqsort.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../pdqsort.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="pdqsort_benchmark.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> 66</div> 67</body> 68</html> 69