• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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