1739 lines
207 KiB
HTML
1739 lines
207 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="zh" dir="ltr" class="client-nojs" xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh">
|
|
<head><meta http-equiv="x-ua-compatible" content="ie=edge">
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
<title>实验性库头文件 <experimental/ranges/algorithm></title>
|
|
<link rel="stylesheet" href="ext.css" />
|
|
<link rel="stylesheet" href="site_modules.css" />
|
|
</head>
|
|
<body class="mediawiki ltr sitedir-ltr ns-0 ns-subject page-cpp_header_experimental_ranges_algorithm skin-cppreference2 action-view cpp-navbar">
|
|
<div id="cpp-content-base">
|
|
<div id="content"><a id="top"></a>
|
|
<h1 id="firstHeading" class="firstHeading"><span style="font-size:0.7em; line-height:130%">实验性库头文件</span> <experimental/ranges/algorithm></h1>
|
|
<div id="bodyContent">
|
|
<div id="contentSub"><span class="subpages">< <a href="cpp.html">cpp</a>‎ | <a href="cpp-header.html">header</a>‎ | <a href="cpp-header-experimental.html">experimental</a></span></div>
|
|
<div id="mw-content-text" lang="zh" dir="ltr" class="mw-content-ltr" xml:lang="zh">
|
|
<p>此头文件是<a href="cpp-experimental-ranges.html">范围</a>库的一部分。</p>
|
|
<h3><span class="mw-headline" id=".E6.A0.87.E7.AD.BE.E8.AF.B4.E6.98.8E.E7.AC.A6">标签说明符</span></h3>
|
|
<table class="t-dsc-begin">
|
|
<tr class="t-dsc-header">
|
|
<td colspan="2">
|
|
<div>定义于命名空间 <code>std::experimental::ranges::tag</code></div>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-experimental-ranges-algorithm-tags.html"><span class="t-lines"><span>in</span><span>in1</span><span>in2</span><span>out</span><span>out1</span><span>out2</span><span>fun</span><span>min</span><span>max</span><span>begin</span><span>end</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>用于 <span class="t-lc">ranges::tagged</span> 的标签说明符<br />
|
|
<span class="t-mark">(类)</span></td>
|
|
</tr>
|
|
</table>
|
|
<h3><span class="mw-headline" id=".E4.B8.8D.E4.BF.AE.E6.94.B9.E5.BA.8F.E5.88.97.E7.9A.84.E6.93.8D.E4.BD.9C">不修改序列的操作</span></h3>
|
|
<table class="t-dsc-begin">
|
|
<tr class="t-dsc-header">
|
|
<td colspan="2">
|
|
<div>定义于命名空间 <code>std::experimental::ranges</code></div>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-experimental-ranges-algorithm-all_any_none_of.html"><span class="t-lines"><span>all_of</span><span>any_of</span><span>none_of</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>检查谓词是否对范围中所有、任一或无元素为 <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw2">true</span></span></span><br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-experimental-ranges-algorithm-for_each.html"><span class="t-lines"><span>for_each</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>应用函数到元素范围<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/count&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/count(页面不存在)"><span class="t-lines"><span>count</span><span>count_if</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>返回满足特定判别标准的元素数<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/mismatch&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/mismatch(页面不存在)"><span class="t-lines"><span>mismatch</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>寻找两个范围出现不同的首个位置<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-experimental-ranges-algorithm-equal.html"><span class="t-lines"><span>equal</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>确定元素的二个集合是否相同<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/lexicographical_compare&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/lexicographical compare(页面不存在)"><span class="t-lines"><span>lexicographical_compare</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>当一个范围按字典顺序小于另一个范围时,返回 true<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/find&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/find(页面不存在)"><span class="t-lines"><span>find</span><span>find_if</span><span>find_if_not</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>寻找首个满足特定判别标准的元素<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/find_end&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/find end(页面不存在)"><span class="t-lines"><span>find_end</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>在特定范围中寻找最后出现的元素序列<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/find_first_of&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/find first of(页面不存在)"><span class="t-lines"><span>find_first_of</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>搜索元素集中的任何元素<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/adjacent_find&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/adjacent find(页面不存在)"><span class="t-lines"><span>adjacent_find</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>寻找头两个相等(或满足给定谓词)的相邻项<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/search&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/search(页面不存在)"><span class="t-lines"><span>search</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>搜索一个元素范围<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/search_n&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/search n(页面不存在)"><span class="t-lines"><span>search_n</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>在范围中搜索一定量的某个元素的连续副本<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
</table>
|
|
<h3><span class="mw-headline" id=".E4.BF.AE.E6.94.B9.E5.BA.8F.E5.88.97.E7.9A.84.E6.93.8D.E4.BD.9C">修改序列的操作</span></h3>
|
|
<table class="t-dsc-begin">
|
|
<tr class="t-dsc-header">
|
|
<td colspan="2">
|
|
<div>定义于命名空间 <code>std::experimental::ranges</code></div>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-experimental-ranges-algorithm-copy.html"><span class="t-lines"><span>copy</span><span>copy_if</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>将某一范围的元素复制到一个新的位置<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/copy_n&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/copy n(页面不存在)"><span class="t-lines"><span>copy_n</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>将一定数目的元素复制到一个新的位置<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/copy_backward&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/copy backward(页面不存在)"><span class="t-lines"><span>copy_backward</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>按从后往前的顺序复制一个范围内的元素<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/move&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/move(页面不存在)"><span class="t-lines"><span>move</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>将某一范围的元素移动到一个新的位置<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/move_backward&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/move backward(页面不存在)"><span class="t-lines"><span>move_backward</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>按从后往前的顺序移动某一范围的元素到新的位置<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/fill&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/fill(页面不存在)"><span class="t-lines"><span>fill</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>将一个特定值赋值给一个元素范围<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/fill_n&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/fill n(页面不存在)"><span class="t-lines"><span>fill_n</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>将一个值赋值给一定数量的元素<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/transform&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/transform(页面不存在)"><span class="t-lines"><span>transform</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>应用一个函数到元素范围<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/generate&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/generate(页面不存在)"><span class="t-lines"><span>generate</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>保存函数结果于一个范围中<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/generate_n&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/generate n(页面不存在)"><span class="t-lines"><span>generate_n</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>保存 N 次应用一个函数的结果<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/remove&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/remove(页面不存在)"><span class="t-lines"><span>remove</span><span>remove_if</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>移除满足特定判别标准的元素<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/remove_copy&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/remove copy(页面不存在)"><span class="t-lines"><span>remove_copy</span><span>remove_copy_if</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>复制元素范围,忽略满足特定判别标准的元素<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/replace&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/replace(页面不存在)"><span class="t-lines"><span>replace</span><span>replace_if</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>将所有满足特定判别标准的值替换为另一值<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/replace_copy&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/replace copy(页面不存在)"><span class="t-lines"><span>replace_copy</span><span>replace_copy_if</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>复制范围,以另一值替换满足特定判别标准的元素<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/swap_ranges&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/swap ranges(页面不存在)"><span class="t-lines"><span>swap_ranges</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>交换两个元素范围<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/reverse&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/reverse(页面不存在)"><span class="t-lines"><span>reverse</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>逆转范围中的元素顺序<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/reverse_copy&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/reverse copy(页面不存在)"><span class="t-lines"><span>reverse_copy</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>创建一个范围的逆向副本<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/rotate&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/rotate(页面不存在)"><span class="t-lines"><span>rotate</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>旋转范围中的元素顺序<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/rotate_copy&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/rotate copy(页面不存在)"><span class="t-lines"><span>rotate_copy</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>复制并旋转元素范围<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/shuffle&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/shuffle(页面不存在)"><span class="t-lines"><span>shuffle</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>随机重排范围中的元素<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/unique&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/unique(页面不存在)"><span class="t-lines"><span>unique</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>移除范围中连续的重复元素<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/unique_copy&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/unique copy(页面不存在)"><span class="t-lines"><span>unique_copy</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>创建某范围的不含连续重复元素的副本<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
</table>
|
|
<h3><span class="mw-headline" id=".E5.88.92.E5.88.86.E6.93.8D.E4.BD.9C">划分操作</span></h3>
|
|
<table class="t-dsc-begin">
|
|
<tr class="t-dsc-header">
|
|
<td colspan="2">
|
|
<div>定义于命名空间 <code>std::experimental::ranges</code></div>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/is_partitioned&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/is partitioned(页面不存在)"><span class="t-lines"><span>is_partitioned</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>判断范围是否已按给定的谓词划分<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/partition&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/partition(页面不存在)"><span class="t-lines"><span>partition</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>将范围中的元素分为两组<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/partition_copy&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/partition copy(页面不存在)"><span class="t-lines"><span>partition_copy</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>复制一个范围,将各元素分为两组<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/stable_partition&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/stable partition(页面不存在)"><span class="t-lines"><span>stable_partition</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>划分元素到两个组中,同时保持其相对顺序<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/partition_point&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/partition point(页面不存在)"><span class="t-lines"><span>partition_point</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>定位已划分范围的划分点<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
</table>
|
|
<h3><span class="mw-headline" id=".E6.8E.92.E5.BA.8F.E6.93.8D.E4.BD.9C">排序操作</span></h3>
|
|
<table class="t-dsc-begin">
|
|
<tr class="t-dsc-header">
|
|
<td colspan="2">
|
|
<div>定义于命名空间 <code>std::experimental::ranges</code></div>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/is_sorted&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/is sorted(页面不存在)"><span class="t-lines"><span>is_sorted</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>检查范围是否以升序排序<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/is_sorted_until&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/is sorted until(页面不存在)"><span class="t-lines"><span>is_sorted_until</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>寻找最大已排序子范围<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-experimental-ranges-algorithm-sort.html"><span class="t-lines"><span>sort</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>将范围按升序排序<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/partial_sort&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/partial sort(页面不存在)"><span class="t-lines"><span>partial_sort</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>排序一个范围的前 N 个元素<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/partial_sort_copy&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/partial sort copy(页面不存在)"><span class="t-lines"><span>partial_sort_copy</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>对范围内的元素进行复制并部分排序<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/stable_sort&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/stable sort(页面不存在)"><span class="t-lines"><span>stable_sort</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>将范围内的元素排序,同时保持相等的元素之间的顺序<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/nth_element&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/nth element(页面不存在)"><span class="t-lines"><span>nth_element</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>将给定的范围部分排序,确保其按给定元素划分<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
</table>
|
|
<h3><span class="mw-headline" id=".EF.BC.88.E5.B7.B2.E6.8E.92.E5.BA.8F.E8.8C.83.E5.9B.B4.E4.B8.8A.E7.9A.84.EF.BC.89.E4.BA.8C.E5.88.86.E6.90.9C.E7.B4.A2.E6.93.8D.E4.BD.9C">(已排序范围上的)二分搜索操作</span></h3>
|
|
<table class="t-dsc-begin">
|
|
<tr class="t-dsc-header">
|
|
<td colspan="2">
|
|
<div>定义于命名空间 <code>std::experimental::ranges</code></div>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/lower_bound&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/lower bound(页面不存在)"><span class="t-lines"><span>lower_bound</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>返回指向首个<i>不小于</i>给定值的元素的迭代器<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/upper_bound&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/upper bound(页面不存在)"><span class="t-lines"><span>upper_bound</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>返回指向首个<i>大于</i>固定值的元素的迭代器<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/binary_search&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/binary search(页面不存在)"><span class="t-lines"><span>binary_search</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>确定元素是否存在于固定范围中<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/equal_range&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/equal range(页面不存在)"><span class="t-lines"><span>equal_range</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>返回匹配特定关键的元素范围<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
</table>
|
|
<h3><span class="mw-headline" id=".EF.BC.88.E5.B7.B2.E6.8E.92.E5.BA.8F.E8.8C.83.E5.9B.B4.E4.B8.8A.E7.9A.84.EF.BC.89.E9.9B.86.E5.90.88.E6.93.8D.E4.BD.9C">(已排序范围上的)集合操作</span></h3>
|
|
<table class="t-dsc-begin">
|
|
<tr class="t-dsc-header">
|
|
<td colspan="2">
|
|
<div>定义于命名空间 <code>std::experimental::ranges</code></div>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/merge&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/merge(页面不存在)"><span class="t-lines"><span>merge</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>归并两个已排序范围<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/inplace_merge&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/inplace merge(页面不存在)"><span class="t-lines"><span>inplace_merge</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>就地归并两个已排序范围<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/includes&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/includes(页面不存在)"><span class="t-lines"><span>includes</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>若一个集合是另一个的子集则返回 true<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/set_difference&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/set difference(页面不存在)"><span class="t-lines"><span>set_difference</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>计算两个集合的差集<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/set_intersection&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/set intersection(页面不存在)"><span class="t-lines"><span>set_intersection</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>计算两个集合的交集<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/set_symmetric_difference&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/set symmetric difference(页面不存在)"><span class="t-lines"><span>set_symmetric_difference</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>计算两个集合的对称差<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/set_union&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/set union(页面不存在)"><span class="t-lines"><span>set_union</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>计算两个集合的并集<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
</table>
|
|
<h3><span class="mw-headline" id=".E5.A0.86.E6.93.8D.E4.BD.9C">堆操作</span></h3>
|
|
<table class="t-dsc-begin">
|
|
<tr class="t-dsc-header">
|
|
<td colspan="2">
|
|
<div>定义于命名空间 <code>std::experimental::ranges</code></div>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/is_heap&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/is heap(页面不存在)"><span class="t-lines"><span>is_heap</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>检查给定范围是否为一个最大堆<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/is_heap_until&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/is heap until(页面不存在)"><span class="t-lines"><span>is_heap_until</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>寻找作为最大堆的最大子范围<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/make_heap&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/make heap(页面不存在)"><span class="t-lines"><span>make_heap</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>从元素范围中创建出最大堆<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/push_heap&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/push heap(页面不存在)"><span class="t-lines"><span>push_heap</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>添加元素到最大堆<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/pop_heap&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/pop heap(页面不存在)"><span class="t-lines"><span>pop_heap</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>从最大堆移除最大元素<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/sort_heap&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/sort heap(页面不存在)"><span class="t-lines"><span>sort_heap</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>将最大堆转化成以升序排序的元素范围<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
</table>
|
|
<h3><span class="mw-headline" id=".E6.9C.80.E5.B0.8F.2F.E6.9C.80.E5.A4.A7.E6.93.8D.E4.BD.9C">最小/最大操作</span></h3>
|
|
<table class="t-dsc-begin">
|
|
<tr class="t-dsc-header">
|
|
<td colspan="2">
|
|
<div>定义于命名空间 <code>std::experimental::ranges</code></div>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/max&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/max(页面不存在)"><span class="t-lines"><span>max</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>返回给定值的较大者<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/max_element&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/max element(页面不存在)"><span class="t-lines"><span>max_element</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>返回范围中的最大元素<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/min&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/min(页面不存在)"><span class="t-lines"><span>min</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>返回给定值的较小者<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/min_element&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/min element(页面不存在)"><span class="t-lines"><span>min_element</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>返回范围中的最小元素<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/minmax&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/minmax(页面不存在)"><span class="t-lines"><span>minmax</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>返回二个元素的较小和较大者<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/minmax_element&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/minmax element(页面不存在)"><span class="t-lines"><span>minmax_element</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>返回范围中的最小和最大元素<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
</table>
|
|
<h3><span class="mw-headline" id=".E6.8E.92.E5.88.97.E6.93.8D.E4.BD.9C">排列操作</span></h3>
|
|
<table class="t-dsc-begin">
|
|
<tr class="t-dsc-header">
|
|
<td colspan="2">
|
|
<div>定义于命名空间 <code>std::experimental::ranges</code></div>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/is_permutation&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/is permutation(页面不存在)"><span class="t-lines"><span>is_permutation</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>判断一个序列是否为另一个序列的排列<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/next_permutation&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/next permutation(页面不存在)"><span class="t-lines"><span>next_permutation</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>产生某个元素范围的按字典顺序的下一个较大的排列<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/algorithm/prev_permutation&action=edit&redlink=1" class="new" title="cpp/experimental/ranges/algorithm/prev permutation(页面不存在)"><span class="t-lines"><span>prev_permutation</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>产生某个元素范围的按字典顺序的下一个较小的排列<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
</table>
|
|
<h3><span class="mw-headline" id=".E6.A6.82.E8.A6.81">概要</span></h3>
|
|
<div dir="ltr" class="mw-geshi" style="text-align: left;">
|
|
<div class="cpp source-cpp">
|
|
<pre class="de1"><span class="co2">#include <initializer_list></span>
|
|
|
|
<span class="kw1">namespace</span> std <span class="br0">{</span> <span class="kw1">namespace</span> experimental <span class="br0">{</span> <span class="kw1">namespace</span> ranges <span class="br0">{</span> <span class="kw1">inline</span> <span class="kw1">namespace</span> v1 <span class="br0">{</span>
|
|
|
|
<span class="kw1">namespace</span> tag <span class="br0">{</span>
|
|
<span class="kw1">struct</span> in<span class="sy4">;</span>
|
|
<span class="kw1">struct</span> in1<span class="sy4">;</span>
|
|
<span class="kw1">struct</span> in2<span class="sy4">;</span>
|
|
<span class="kw1">struct</span> out<span class="sy4">;</span>
|
|
<span class="kw1">struct</span> out1<span class="sy4">;</span>
|
|
<span class="kw1">struct</span> out2<span class="sy4">;</span>
|
|
<span class="kw1">struct</span> fun<span class="sy4">;</span>
|
|
<span class="kw1">struct</span> min<span class="sy4">;</span>
|
|
<span class="kw1">struct</span> max<span class="sy4">;</span>
|
|
<span class="kw1">struct</span> begin<span class="sy4">;</span>
|
|
<span class="kw1">struct</span> end<span class="sy4">;</span>
|
|
<span class="br0">}</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectUnaryPredicate<span class="sy1"><</span>projected<span class="sy1"><</span>I, Proj<span class="sy1">>></span> Pred<span class="sy1">></span>
|
|
<span class="kw4">bool</span> all_of<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectUnaryPredicate<span class="sy1"><</span>projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">>></span> Pred<span class="sy1">></span>
|
|
<span class="kw4">bool</span> all_of<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectUnaryPredicate<span class="sy1"><</span>projected<span class="sy1"><</span>I, Proj<span class="sy1">>></span> Pred<span class="sy1">></span>
|
|
<span class="kw4">bool</span> any_of<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectUnaryPredicate<span class="sy1"><</span>projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">>></span> Pred<span class="sy1">></span>
|
|
<span class="kw4">bool</span> any_of<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectUnaryPredicate<span class="sy1"><</span>projected<span class="sy1"><</span>I, Proj<span class="sy1">>></span> Pred<span class="sy1">></span>
|
|
<span class="kw4">bool</span> none_of<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectUnaryPredicate<span class="sy1"><</span>projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">>></span> Pred<span class="sy1">></span>
|
|
<span class="kw4">bool</span> none_of<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectUnaryInvocable<span class="sy1"><</span>projected<span class="sy1"><</span>I, Proj<span class="sy1">>></span> Fun<span class="sy1">></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">fun</span><span class="br0">(</span>Fun<span class="br0">)</span><span class="sy1">></span>
|
|
for_each<span class="br0">(</span>I first, S last, Fun f, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectUnaryInvocable<span class="sy1"><</span>projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">>></span> Fun<span class="sy1">></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">fun</span><span class="br0">(</span>Fun<span class="br0">)</span><span class="sy1">></span>
|
|
for_each<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, Fun f, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires IndirectRelation<span class="sy1"><</span>equal_to<span class="sy1"><></span>, projected<span class="sy1"><</span>I, Proj<span class="sy1">></span>, <span class="kw4">const</span> T<span class="sy2">*</span><span class="sy1">></span>
|
|
I find<span class="br0">(</span>I first, S last, <span class="kw4">const</span> T<span class="sy3">&</span> value, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputRange Rng, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires IndirectRelation<span class="sy1"><</span>equal_to<span class="sy1"><></span>, projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">></span>, <span class="kw4">const</span> T<span class="sy2">*</span><span class="sy1">></span>
|
|
safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>
|
|
find<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, <span class="kw4">const</span> T<span class="sy3">&</span> value, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectUnaryPredicate<span class="sy1"><</span>projected<span class="sy1"><</span>I, Proj<span class="sy1">>></span> Pred<span class="sy1">></span>
|
|
I find_if<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectUnaryPredicate<span class="sy1"><</span>projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">>></span> Pred<span class="sy1">></span>
|
|
safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>
|
|
find_if<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectUnaryPredicate<span class="sy1"><</span>projected<span class="sy1"><</span>I, Proj<span class="sy1">>></span> Pred<span class="sy1">></span>
|
|
I find_if_not<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectUnaryPredicate<span class="sy1"><</span>projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">>></span> Pred<span class="sy1">></span>
|
|
safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>
|
|
find_if_not<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardIterator I1, Sentinel<span class="sy1"><</span>I1<span class="sy1">></span> S1, ForwardIterator I2,
|
|
Sentinel<span class="sy1"><</span>I2<span class="sy1">></span> S2, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectRelation<span class="sy1"><</span>I2, projected<span class="sy1"><</span>I1, Proj<span class="sy1">>></span> Pred <span class="sy1">=</span> equal_to<span class="sy1"><>></span>
|
|
I1
|
|
find_end<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2,
|
|
Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardRange Rng1, ForwardRange Rng2, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectRelation<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng2<span class="sy1">></span>,
|
|
projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">>></span> Pred <span class="sy1">=</span> equal_to<span class="sy1"><>></span>
|
|
safe_iterator_t<span class="sy1"><</span>Rng1<span class="sy1">></span>
|
|
find_end<span class="br0">(</span>Rng1<span class="sy3">&&</span> rng1, Rng2<span class="sy3">&&</span> rng2, Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputIterator I1, Sentinel<span class="sy1"><</span>I1<span class="sy1">></span> S1, ForwardIterator I2, Sentinel<span class="sy1"><</span>I2<span class="sy1">></span> S2,
|
|
<span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity,
|
|
IndirectRelation<span class="sy1"><</span>projected<span class="sy1"><</span>I1, Proj1<span class="sy1">></span>, projected<span class="sy1"><</span>I2, Proj2<span class="sy1">>></span> Pred <span class="sy1">=</span> equal_to<span class="sy1"><>></span>
|
|
I1
|
|
find_first_of<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2,
|
|
Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>,
|
|
Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputRange Rng1, ForwardRange Rng2, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity,
|
|
<span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity,
|
|
IndirectRelation<span class="sy1"><</span>projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng1<span class="sy1">></span>, Proj1<span class="sy1">></span>,
|
|
projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng2<span class="sy1">></span>, Proj2<span class="sy1">>></span> Pred <span class="sy1">=</span> equal_to<span class="sy1"><>></span>
|
|
safe_iterator_t<span class="sy1"><</span>Rng1<span class="sy1">></span>
|
|
find_first_of<span class="br0">(</span>Rng1<span class="sy3">&&</span> rng1, Rng2<span class="sy3">&&</span> rng2,
|
|
Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>,
|
|
Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectRelation<span class="sy1"><</span>projected<span class="sy1"><</span>I, Proj<span class="sy1">>></span> Pred <span class="sy1">=</span> equal_to<span class="sy1"><>></span>
|
|
I
|
|
adjacent_find<span class="br0">(</span>I first, S last, Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>,
|
|
Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectRelation<span class="sy1"><</span>projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">>></span> Pred <span class="sy1">=</span> equal_to<span class="sy1"><>></span>
|
|
safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>
|
|
adjacent_find<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires IndirectRelation<span class="sy1"><</span>equal_to<span class="sy1"><></span>, projected<span class="sy1"><</span>I, Proj<span class="sy1">></span>, <span class="kw4">const</span> T<span class="sy2">*</span><span class="sy1">></span>
|
|
difference_type_t<span class="sy1"><</span>I<span class="sy1">></span>
|
|
count<span class="br0">(</span>I first, S last, <span class="kw4">const</span> T<span class="sy3">&</span> value, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputRange Rng, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires IndirectRelation<span class="sy1"><</span>equal_to<span class="sy1"><></span>, projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">></span>, <span class="kw4">const</span> T<span class="sy2">*</span><span class="sy1">></span>
|
|
difference_type_t<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">>></span>
|
|
count<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, <span class="kw4">const</span> T<span class="sy3">&</span> value, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectUnaryPredicate<span class="sy1"><</span>projected<span class="sy1"><</span>I, Proj<span class="sy1">>></span> Pred<span class="sy1">></span>
|
|
difference_type_t<span class="sy1"><</span>I<span class="sy1">></span>
|
|
count_if<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectUnaryPredicate<span class="sy1"><</span>projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">>></span> Pred<span class="sy1">></span>
|
|
difference_type_t<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">>></span>
|
|
count_if<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputIterator I1, Sentinel<span class="sy1"><</span>I1<span class="sy1">></span> S1, InputIterator I2, Sentinel<span class="sy1"><</span>I2<span class="sy1">></span> S2,
|
|
<span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity,
|
|
IndirectRelation<span class="sy1"><</span>projected<span class="sy1"><</span>I1, Proj1<span class="sy1">></span>, projected<span class="sy1"><</span>I2, Proj2<span class="sy1">>></span> Pred <span class="sy1">=</span> equal_to<span class="sy1"><>></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>I1<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">in2</span><span class="br0">(</span>I2<span class="br0">)</span><span class="sy1">></span>
|
|
mismatch<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2, Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>,
|
|
Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputRange Rng1, InputRange Rng2,
|
|
<span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity,
|
|
IndirectRelation<span class="sy1"><</span>projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng1<span class="sy1">></span>, Proj1<span class="sy1">></span>,
|
|
projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng2<span class="sy1">></span>, Proj2<span class="sy1">>></span> Pred <span class="sy1">=</span> equal_to<span class="sy1"><>></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>safe_iterator_t<span class="sy1"><</span>Rng1<span class="sy1">></span><span class="br0">)</span>,
|
|
tag<span class="sy4">::</span><span class="me2">in2</span><span class="br0">(</span>safe_iterator_t<span class="sy1"><</span>Rng2<span class="sy1">></span><span class="br0">)</span><span class="sy1">></span>
|
|
mismatch<span class="br0">(</span>Rng1<span class="sy3">&&</span> rng1, Rng2<span class="sy3">&&</span> rng2, Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>,
|
|
Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputIterator I1, Sentinel<span class="sy1"><</span>I1<span class="sy1">></span> S1, InputIterator I2, Sentinel<span class="sy1"><</span>I2<span class="sy1">></span> S2,
|
|
<span class="kw1">class</span> Pred <span class="sy1">=</span> equal_to<span class="sy1"><></span>, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires IndirectlyComparable<span class="sy1"><</span>I1, I2, Pred, Proj1, Proj2<span class="sy1">></span>
|
|
<span class="kw4">bool</span> equal<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2,
|
|
Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>,
|
|
Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputRange Rng1, InputRange Rng2, <span class="kw1">class</span> Pred <span class="sy1">=</span> equal_to<span class="sy1"><></span>,
|
|
<span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires IndirectlyComparable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng1<span class="sy1">></span>, iterator_t<span class="sy1"><</span>Rng2<span class="sy1">></span>, Pred, Proj1, Proj2<span class="sy1">></span>
|
|
<span class="kw4">bool</span> equal<span class="br0">(</span>Rng1<span class="sy3">&&</span> rng1, Rng2<span class="sy3">&&</span> rng2, Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>,
|
|
Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardIterator I1, Sentinel<span class="sy1"><</span>I1<span class="sy1">></span> S1, ForwardIterator I2,
|
|
Sentinel<span class="sy1"><</span>I2<span class="sy1">></span> S2, <span class="kw1">class</span> Pred <span class="sy1">=</span> equal_to<span class="sy1"><></span>, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity,
|
|
<span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires IndirectlyComparable<span class="sy1"><</span>I1, I2, Pred, Proj1, Proj2<span class="sy1">></span>
|
|
<span class="kw4">bool</span> is_permutation<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2,
|
|
Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>,
|
|
Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardRange Rng1, ForwardRange Rng2, <span class="kw1">class</span> Pred <span class="sy1">=</span> equal_to<span class="sy1"><></span>,
|
|
<span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires IndirectlyComparable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng1<span class="sy1">></span>, iterator_t<span class="sy1"><</span>Rng2<span class="sy1">></span>, Pred, Proj1, Proj2<span class="sy1">></span>
|
|
<span class="kw4">bool</span> is_permutation<span class="br0">(</span>Rng1<span class="sy3">&&</span> rng1, Rng2<span class="sy3">&&</span> rng2, Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>,
|
|
Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardIterator I1, Sentinel<span class="sy1"><</span>I1<span class="sy1">></span> S1, ForwardIterator I2,
|
|
Sentinel<span class="sy1"><</span>I2<span class="sy1">></span> S2, <span class="kw1">class</span> Pred <span class="sy1">=</span> equal_to<span class="sy1"><></span>,
|
|
<span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires IndirectlyComparable<span class="sy1"><</span>I1, I2, Pred, Proj1, Proj2<span class="sy1">></span>
|
|
I1
|
|
search<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2,
|
|
Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>,
|
|
Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardRange Rng1, ForwardRange Rng2, <span class="kw1">class</span> Pred <span class="sy1">=</span> equal_to<span class="sy1"><></span>,
|
|
<span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires IndirectlyComparable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng1<span class="sy1">></span>, iterator_t<span class="sy1"><</span>Rng2<span class="sy1">></span>, Pred, Proj1, Proj2<span class="sy1">></span>
|
|
safe_iterator_t<span class="sy1"><</span>Rng1<span class="sy1">></span>
|
|
search<span class="br0">(</span>Rng1<span class="sy3">&&</span> rng1, Rng2<span class="sy3">&&</span> rng2, Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>,
|
|
Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> T,
|
|
<span class="kw1">class</span> Pred <span class="sy1">=</span> equal_to<span class="sy1"><></span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires IndirectlyComparable<span class="sy1"><</span>I, <span class="kw4">const</span> T<span class="sy2">*</span>, Pred, Proj<span class="sy1">></span>
|
|
I
|
|
search_n<span class="br0">(</span>I first, S last, difference_type_t<span class="sy1"><</span>I<span class="sy1">></span> count,
|
|
<span class="kw4">const</span> T<span class="sy3">&</span> value, Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>,
|
|
Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardRange Rng, <span class="kw1">class</span> T, <span class="kw1">class</span> Pred <span class="sy1">=</span> equal_to<span class="sy1"><></span>,
|
|
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires IndirectlyComparable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, <span class="kw4">const</span> T<span class="sy2">*</span>, Pred, Proj<span class="sy1">></span>
|
|
safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>
|
|
search_n<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, difference_type_t<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">>></span> count,
|
|
<span class="kw4">const</span> T<span class="sy3">&</span> value, Pred pred <span class="sy1">=</span> Pred<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, WeaklyIncrementable O<span class="sy1">></span>
|
|
requires IndirectlyCopyable<span class="sy1"><</span>I, O<span class="sy1">></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">></span>
|
|
copy<span class="br0">(</span>I first, S last, O result<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputRange Rng, WeaklyIncrementable O<span class="sy1">></span>
|
|
requires IndirectlyCopyable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, O<span class="sy1">></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">></span>
|
|
copy<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, O result<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputIterator I, WeaklyIncrementable O<span class="sy1">></span>
|
|
requires IndirectlyCopyable<span class="sy1"><</span>I, O<span class="sy1">></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">></span>
|
|
copy_n<span class="br0">(</span>I first, difference_type_t<span class="sy1"><</span>I<span class="sy1">></span> n, O result<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, WeaklyIncrementable O, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectUnaryPredicate<span class="sy1"><</span>projected<span class="sy1"><</span>I, Proj<span class="sy1">>></span> Pred<span class="sy1">></span>
|
|
requires IndirectlyCopyable<span class="sy1"><</span>I, O<span class="sy1">></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">></span>
|
|
copy_if<span class="br0">(</span>I first, S last, O result, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputRange Rng, WeaklyIncrementable O, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectUnaryPredicate<span class="sy1"><</span>projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">>></span> Pred<span class="sy1">></span>
|
|
requires IndirectlyCopyable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, O<span class="sy1">></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">></span>
|
|
copy_if<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, O result, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>BidirectionalIterator I1, Sentinel<span class="sy1"><</span>I1<span class="sy1">></span> S1, BidirectionalIterator I2<span class="sy1">></span>
|
|
requires IndirectlyCopyable<span class="sy1"><</span>I1, I2<span class="sy1">></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I1<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>I2<span class="br0">)</span><span class="sy1">></span>
|
|
copy_backward<span class="br0">(</span>I1 first, S1 last, I2 result<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>BidirectionalRange Rng, BidirectionalIterator I<span class="sy1">></span>
|
|
requires IndirectlyCopyable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, I<span class="sy1">></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>I<span class="br0">)</span><span class="sy1">></span>
|
|
copy_backward<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, I result<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, WeaklyIncrementable O<span class="sy1">></span>
|
|
requires IndirectlyMovable<span class="sy1"><</span>I, O<span class="sy1">></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">></span>
|
|
move<span class="br0">(</span>I first, S last, O result<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputRange Rng, WeaklyIncrementable O<span class="sy1">></span>
|
|
requires IndirectlyMovable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, O<span class="sy1">></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">></span>
|
|
move<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, O result<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>BidirectionalIterator I1, Sentinel<span class="sy1"><</span>I1<span class="sy1">></span> S1, BidirectionalIterator I2<span class="sy1">></span>
|
|
requires IndirectlyMovable<span class="sy1"><</span>I1, I2<span class="sy1">></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I1<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>I2<span class="br0">)</span><span class="sy1">></span>
|
|
move_backward<span class="br0">(</span>I1 first, S1 last, I2 result<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>BidirectionalRange Rng, BidirectionalIterator I<span class="sy1">></span>
|
|
requires IndirectlyMovable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, I<span class="sy1">></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>I<span class="br0">)</span><span class="sy1">></span>
|
|
move_backward<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, I result<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardIterator I1, Sentinel<span class="sy1"><</span>I1<span class="sy1">></span> S1, ForwardIterator I2, Sentinel<span class="sy1"><</span>I2<span class="sy1">></span> S2<span class="sy1">></span>
|
|
requires IndirectlySwappable<span class="sy1"><</span>I1, I2<span class="sy1">></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>I1<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">in2</span><span class="br0">(</span>I2<span class="br0">)</span><span class="sy1">></span>
|
|
swap_ranges<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardRange Rng1, ForwardRange Rng2<span class="sy1">></span>
|
|
requires IndirectlySwappable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng1<span class="sy1">></span>, iterator_t<span class="sy1"><</span>Rng2<span class="sy1">>></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>safe_iterator_t<span class="sy1"><</span>Rng1<span class="sy1">></span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">in2</span><span class="br0">(</span>safe_iterator_t<span class="sy1"><</span>Rng2<span class="sy1">></span><span class="br0">)</span><span class="sy1">></span>
|
|
swap_ranges<span class="br0">(</span>Rng1<span class="sy3">&&</span> rng1, Rng2<span class="sy3">&&</span> rng2<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, WeaklyIncrementable O,
|
|
CopyConstructible F, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Writable<span class="sy1"><</span>O, indirect_result_of_t<span class="sy1"><</span>F<span class="sy3">&</span><span class="br0">(</span>projected<span class="sy1"><</span>I, Proj<span class="sy1">></span><span class="br0">)</span><span class="sy1">>></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">></span>
|
|
transform<span class="br0">(</span>I first, S last, O result, F op, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputRange Rng, WeaklyIncrementable O, CopyConstructible F,
|
|
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Writable<span class="sy1"><</span>O, indirect_result_of_t<span class="sy1"><</span>F<span class="sy3">&</span><span class="br0">(</span>
|
|
projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>R<span class="sy1">></span>, Proj<span class="sy1">></span><span class="br0">)</span><span class="sy1">>></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">></span>
|
|
transform<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, O result, F op, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputIterator I1, Sentinel<span class="sy1"><</span>I1<span class="sy1">></span> S1, InputIterator I2, Sentinel<span class="sy1"><</span>I2<span class="sy1">></span> S2,
|
|
WeaklyIncrementable O, CopyConstructible F, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity,
|
|
<span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Writable<span class="sy1"><</span>O, indirect_result_of_t<span class="sy1"><</span>F<span class="sy3">&</span><span class="br0">(</span>projected<span class="sy1"><</span>I1, Proj1<span class="sy1">></span>,
|
|
projected<span class="sy1"><</span>I2, Proj2<span class="sy1">></span><span class="br0">)</span><span class="sy1">>></span>
|
|
tagged_tuple<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>I1<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">in2</span><span class="br0">(</span>I2<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">></span>
|
|
transform<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2, O result,
|
|
F binary_op, Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputRange Rng1, InputRange Rng2, WeaklyIncrementable O,
|
|
CopyConstructible F, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Writable<span class="sy1"><</span>O, indirect_result_of_t<span class="sy1"><</span>F<span class="sy3">&</span><span class="br0">(</span>
|
|
projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng1<span class="sy1">></span>, Proj1<span class="sy1">></span>, projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng2<span class="sy1">></span>, Proj2<span class="sy1">></span><span class="br0">)</span><span class="sy1">>></span>
|
|
tagged_tuple<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>safe_iterator_t<span class="sy1"><</span>Rng1<span class="sy1">></span><span class="br0">)</span>,
|
|
tag<span class="sy4">::</span><span class="me2">in2</span><span class="br0">(</span>safe_iterator_t<span class="sy1"><</span>Rng2<span class="sy1">></span><span class="br0">)</span>,
|
|
tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">></span>
|
|
transform<span class="br0">(</span>Rng1<span class="sy3">&&</span> rng1, Rng2<span class="sy3">&&</span> rng2, O result,
|
|
F binary_op, Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> T1, <span class="kw1">class</span> T2, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Writable<span class="sy1"><</span>I, <span class="kw4">const</span> T2<span class="sy3">&</span><span class="sy1">></span> <span class="sy3">&&</span>
|
|
IndirectRelation<span class="sy1"><</span>equal_to<span class="sy1"><></span>, projected<span class="sy1"><</span>I, Proj<span class="sy1">></span>, <span class="kw4">const</span> T1<span class="sy2">*</span><span class="sy1">></span>
|
|
I
|
|
replace<span class="br0">(</span>I first, S last, <span class="kw4">const</span> T1<span class="sy3">&</span> old_value, <span class="kw4">const</span> T2<span class="sy3">&</span> new_value, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputRange Rng, <span class="kw1">class</span> T1, <span class="kw1">class</span> T2, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Writable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, <span class="kw4">const</span> T2<span class="sy3">&</span><span class="sy1">></span> <span class="sy3">&&</span>
|
|
IndirectRelation<span class="sy1"><</span>equal_to<span class="sy1"><></span>, projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">></span>, <span class="kw4">const</span> T1<span class="sy2">*</span><span class="sy1">></span>
|
|
safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>
|
|
replace<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, <span class="kw4">const</span> T1<span class="sy3">&</span> old_value, <span class="kw4">const</span> T2<span class="sy3">&</span> new_value, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectUnaryPredicate<span class="sy1"><</span>projected<span class="sy1"><</span>I, Proj<span class="sy1">>></span> Pred<span class="sy1">></span>
|
|
requires Writable<span class="sy1"><</span>I, <span class="kw4">const</span> T<span class="sy3">&</span><span class="sy1">></span>
|
|
I
|
|
replace_if<span class="br0">(</span>I first, S last, Pred pred, <span class="kw4">const</span> T<span class="sy3">&</span> new_value, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputRange Rng, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectUnaryPredicate<span class="sy1"><</span>projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">>></span> Pred<span class="sy1">></span>
|
|
requires Writable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, <span class="kw4">const</span> T<span class="sy3">&</span><span class="sy1">></span>
|
|
safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>
|
|
replace_if<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, Pred pred, <span class="kw4">const</span> T<span class="sy3">&</span> new_value, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> T1, <span class="kw1">class</span> T2, OutputIterator<span class="sy1"><</span><span class="kw4">const</span> T2<span class="sy3">&</span><span class="sy1">></span> O,
|
|
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires IndirectlyCopyable<span class="sy1"><</span>I, O<span class="sy1">></span> <span class="sy3">&&</span>
|
|
IndirectRelation<span class="sy1"><</span>equal_to<span class="sy1"><></span>, projected<span class="sy1"><</span>I, Proj<span class="sy1">></span>, <span class="kw4">const</span> T1<span class="sy2">*</span><span class="sy1">></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">></span>
|
|
replace_copy<span class="br0">(</span>I first, S last, O result, <span class="kw4">const</span> T1<span class="sy3">&</span> old_value, <span class="kw4">const</span> T2<span class="sy3">&</span> new_value,
|
|
Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputRange Rng, <span class="kw1">class</span> T1, <span class="kw1">class</span> T2, OutputIterator<span class="sy1"><</span><span class="kw4">const</span> T2<span class="sy3">&</span><span class="sy1">></span> O,
|
|
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires IndirectlyCopyable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, O<span class="sy1">></span> <span class="sy3">&&</span>
|
|
IndirectRelation<span class="sy1"><</span>equal_to<span class="sy1"><></span>, projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">></span>, <span class="kw4">const</span> T1<span class="sy2">*</span><span class="sy1">></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">></span>
|
|
replace_copy<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, O result, <span class="kw4">const</span> T1<span class="sy3">&</span> old_value, <span class="kw4">const</span> T2<span class="sy3">&</span> new_value,
|
|
Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> T, OutputIterator<span class="sy1"><</span><span class="kw4">const</span> T<span class="sy3">&</span><span class="sy1">></span> O,
|
|
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity, IndirectUnaryPredicate<span class="sy1"><</span>projected<span class="sy1"><</span>I, Proj<span class="sy1">>></span> Pred<span class="sy1">></span>
|
|
requires IndirectlyCopyable<span class="sy1"><</span>I, O<span class="sy1">></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">></span>
|
|
replace_copy_if<span class="br0">(</span>I first, S last, O result, Pred pred, <span class="kw4">const</span> T<span class="sy3">&</span> new_value,
|
|
Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputRange Rng, <span class="kw1">class</span> T, OutputIterator<span class="sy1"><</span><span class="kw4">const</span> T<span class="sy3">&</span><span class="sy1">></span> O, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectUnaryPredicate<span class="sy1"><</span>projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">>></span> Pred<span class="sy1">></span>
|
|
requires IndirectlyCopyable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, O<span class="sy1">></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">></span>
|
|
replace_copy_if<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, O result, Pred pred, <span class="kw4">const</span> T<span class="sy3">&</span> new_value,
|
|
Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T, OutputIterator<span class="sy1"><</span><span class="kw4">const</span> T<span class="sy3">&</span><span class="sy1">></span> O, Sentinel<span class="sy1"><</span>O<span class="sy1">></span> S<span class="sy1">></span>
|
|
O fill<span class="br0">(</span>O first, S last, <span class="kw4">const</span> T<span class="sy3">&</span> value<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T, OutputRange<span class="sy1"><</span><span class="kw4">const</span> T<span class="sy3">&</span><span class="sy1">></span> Rng<span class="sy1">></span>
|
|
safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>
|
|
fill<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, <span class="kw4">const</span> T<span class="sy3">&</span> value<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T, OutputIterator<span class="sy1"><</span><span class="kw4">const</span> T<span class="sy3">&</span><span class="sy1">></span> O<span class="sy1">></span>
|
|
O fill_n<span class="br0">(</span>O first, difference_type_t<span class="sy1"><</span>O<span class="sy1">></span> n, <span class="kw4">const</span> T<span class="sy3">&</span> value<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Iterator O, Sentinel<span class="sy1"><</span>O<span class="sy1">></span> S, CopyConstructible F<span class="sy1">></span>
|
|
requires Invocable<span class="sy1"><</span>F<span class="sy3">&</span><span class="sy1">></span> <span class="sy3">&&</span> Writable<span class="sy1"><</span>O, result_of_t<span class="sy1"><</span>F<span class="sy3">&</span><span class="br0">(</span><span class="br0">)</span><span class="sy1">>></span>
|
|
O generate<span class="br0">(</span>O first, S last, F gen<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> Rng, CopyConstructible F<span class="sy1">></span>
|
|
requires Invocable<span class="sy1"><</span>F<span class="sy3">&</span><span class="sy1">></span> <span class="sy3">&&</span> OutputRange<span class="sy1"><</span>Rng, result_of_t<span class="sy1"><</span>F<span class="sy3">&</span><span class="br0">(</span><span class="br0">)</span><span class="sy1">>></span>
|
|
safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>
|
|
generate<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, F gen<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Iterator O, CopyConstructible F<span class="sy1">></span>
|
|
requires Invocable<span class="sy1"><</span>F<span class="sy3">&</span><span class="sy1">></span> <span class="sy3">&&</span> Writable<span class="sy1"><</span>O, result_of_t<span class="sy1"><</span>F<span class="sy3">&</span><span class="br0">(</span><span class="br0">)</span><span class="sy1">>></span>
|
|
O generate_n<span class="br0">(</span>O first, difference_type_t<span class="sy1"><</span>O<span class="sy1">></span> n, F gen<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Permutable<span class="sy1"><</span>I<span class="sy1">></span> <span class="sy3">&&</span>
|
|
IndirectRelation<span class="sy1"><</span>equal_to<span class="sy1"><></span>, projected<span class="sy1"><</span>I, Proj<span class="sy1">></span>, <span class="kw4">const</span> T<span class="sy2">*</span><span class="sy1">></span>
|
|
I remove<span class="br0">(</span>I first, S last, <span class="kw4">const</span> T<span class="sy3">&</span> value, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardRange Rng, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Permutable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">>></span> <span class="sy3">&&</span>
|
|
IndirectRelation<span class="sy1"><</span>equal_to<span class="sy1"><></span>, projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">></span>, <span class="kw4">const</span> T<span class="sy2">*</span><span class="sy1">></span>
|
|
safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>
|
|
remove<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, <span class="kw4">const</span> T<span class="sy3">&</span> value, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectUnaryPredicate<span class="sy1"><</span>projected<span class="sy1"><</span>I, Proj<span class="sy1">>></span> Pred<span class="sy1">></span>
|
|
requires Permutable<span class="sy1"><</span>I<span class="sy1">></span>
|
|
I remove_if<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectUnaryPredicate<span class="sy1"><</span>projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">>></span> Pred<span class="sy1">></span>
|
|
requires Permutable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">>></span>
|
|
safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>
|
|
remove_if<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, WeaklyIncrementable O, <span class="kw1">class</span> T,
|
|
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires IndirectlyCopyable<span class="sy1"><</span>I, O<span class="sy1">></span> <span class="sy3">&&</span>
|
|
IndirectRelation<span class="sy1"><</span>equal_to<span class="sy1"><></span>, projected<span class="sy1"><</span>I, Proj<span class="sy1">></span>, <span class="kw4">const</span> T<span class="sy2">*</span><span class="sy1">></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">></span>
|
|
remove_copy<span class="br0">(</span>I first, S last, O result, <span class="kw4">const</span> T<span class="sy3">&</span> value, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputRange Rng, WeaklyIncrementable O, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires IndirectlyCopyable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, O<span class="sy1">></span> <span class="sy3">&&</span>
|
|
IndirectRelation<span class="sy1"><</span>equal_to<span class="sy1"><></span>, projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">></span>, <span class="kw4">const</span> T<span class="sy2">*</span><span class="sy1">></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">></span>
|
|
remove_copy<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, O result, <span class="kw4">const</span> T<span class="sy3">&</span> value, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, WeaklyIncrementable O,
|
|
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity, IndirectUnaryPredicate<span class="sy1"><</span>projected<span class="sy1"><</span>I, Proj<span class="sy1">>></span> Pred<span class="sy1">></span>
|
|
requires IndirectlyCopyable<span class="sy1"><</span>I, O<span class="sy1">></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">></span>
|
|
remove_copy_if<span class="br0">(</span>I first, S last, O result, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputRange Rng, WeaklyIncrementable O, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectUnaryPredicate<span class="sy1"><</span>projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">>></span> Pred<span class="sy1">></span>
|
|
requires IndirectlyCopyable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, O<span class="sy1">></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">></span>
|
|
remove_copy_if<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, O result, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectRelation<span class="sy1"><</span>projected<span class="sy1"><</span>I, Proj<span class="sy1">>></span> R <span class="sy1">=</span> equal_to<span class="sy1"><>></span>
|
|
requires Permutable<span class="sy1"><</span>I<span class="sy1">></span>
|
|
I unique<span class="br0">(</span>I first, S last, R comp <span class="sy1">=</span> R<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectRelation<span class="sy1"><</span>projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">>></span> R <span class="sy1">=</span> equal_to<span class="sy1"><>></span>
|
|
requires Permutable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">>></span>
|
|
safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>
|
|
unique<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, R comp <span class="sy1">=</span> R<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, WeaklyIncrementable O,
|
|
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity, IndirectRelation<span class="sy1"><</span>projected<span class="sy1"><</span>I, Proj<span class="sy1">>></span> R <span class="sy1">=</span> equal_to<span class="sy1"><>></span>
|
|
requires IndirectlyCopyable<span class="sy1"><</span>I, O<span class="sy1">></span> <span class="sy3">&&</span>
|
|
<span class="br0">(</span>ForwardIterator<span class="sy1"><</span>I<span class="sy1">></span> <span class="sy3">||</span>
|
|
<span class="br0">(</span>InputIterator<span class="sy1"><</span>O<span class="sy1">></span> <span class="sy3">&&</span> Same<span class="sy1"><</span>value_type_t<span class="sy1"><</span>I<span class="sy1">></span>, value_type_t<span class="sy1"><</span>O<span class="sy1">>></span><span class="br0">)</span> <span class="sy3">||</span>
|
|
IndirectlyCopyableStorable<span class="sy1"><</span>I, O<span class="sy1">></span><span class="br0">)</span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">></span>
|
|
unique_copy<span class="br0">(</span>I first, S last, O result, R comp <span class="sy1">=</span> R<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputRange Rng, WeaklyIncrementable O, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectRelation<span class="sy1"><</span>projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">>></span> R <span class="sy1">=</span> equal_to<span class="sy1"><>></span>
|
|
requires IndirectlyCopyable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, O<span class="sy1">></span> <span class="sy3">&&</span>
|
|
<span class="br0">(</span>ForwardIterator<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">>></span> <span class="sy3">||</span>
|
|
<span class="br0">(</span>InputIterator<span class="sy1"><</span>O<span class="sy1">></span> <span class="sy3">&&</span> Same<span class="sy1"><</span>value_type_t<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">>></span>, value_type_t<span class="sy1"><</span>O<span class="sy1">>></span><span class="br0">)</span> <span class="sy3">||</span>
|
|
IndirectlyCopyableStorable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, O<span class="sy1">></span><span class="br0">)</span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">></span>
|
|
unique_copy<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, O result, R comp <span class="sy1">=</span> R<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>BidirectionalIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S<span class="sy1">></span>
|
|
requires Permutable<span class="sy1"><</span>I<span class="sy1">></span>
|
|
I reverse<span class="br0">(</span>I first, S last<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>BidirectionalRange Rng<span class="sy1">></span>
|
|
requires Permutable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">>></span>
|
|
safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>
|
|
reverse<span class="br0">(</span>Rng<span class="sy3">&&</span> rng<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>BidirectionalIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, WeaklyIncrementable O<span class="sy1">></span>
|
|
requires IndirectlyCopyable<span class="sy1"><</span>I, O<span class="sy1">></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">></span> reverse_copy<span class="br0">(</span>I first, S last, O result<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>BidirectionalRange Rng, WeaklyIncrementable O<span class="sy1">></span>
|
|
requires IndirectlyCopyable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, O<span class="sy1">></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">></span>
|
|
reverse_copy<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, O result<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S<span class="sy1">></span>
|
|
requires Permutable<span class="sy1"><</span>I<span class="sy1">></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">begin</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">end</span><span class="br0">(</span>I<span class="br0">)</span><span class="sy1">></span>
|
|
rotate<span class="br0">(</span>I first, I middle, S last<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardRange Rng<span class="sy1">></span>
|
|
requires Permutable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">>></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">begin</span><span class="br0">(</span>safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span><span class="br0">)</span>,
|
|
tag<span class="sy4">::</span><span class="me2">end</span><span class="br0">(</span>safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span><span class="br0">)</span><span class="sy1">></span>
|
|
rotate<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span> middle<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, WeaklyIncrementable O<span class="sy1">></span>
|
|
requires IndirectlyCopyable<span class="sy1"><</span>I, O<span class="sy1">></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">></span>
|
|
rotate_copy<span class="br0">(</span>I first, I middle, S last, O result<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardRange Rng, WeaklyIncrementable O<span class="sy1">></span>
|
|
requires IndirectlyCopyable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, O<span class="sy1">></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">></span>
|
|
rotate_copy<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span> middle, O result<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>RandomAccessIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> Gen<span class="sy1">></span>
|
|
requires Permutable<span class="sy1"><</span>I<span class="sy1">></span> <span class="sy3">&&</span>
|
|
UniformRandomNumberGenerator<span class="sy1"><</span>remove_reference_t<span class="sy1"><</span>Gen<span class="sy1">>></span> <span class="sy3">&&</span>
|
|
ConvertibleTo<span class="sy1"><</span>result_of_t<span class="sy1"><</span>Gen<span class="sy3">&</span><span class="br0">(</span><span class="br0">)</span><span class="sy1">></span>, difference_type_t<span class="sy1"><</span>I<span class="sy1">>></span>
|
|
I shuffle<span class="br0">(</span>I first, S last, Gen<span class="sy3">&&</span> g<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>RandomAccessRange Rng, <span class="kw1">class</span> Gen<span class="sy1">></span>
|
|
requires Permutable<span class="sy1"><</span>I<span class="sy1">></span> <span class="sy3">&&</span>
|
|
UniformRandomNumberGenerator<span class="sy1"><</span>remove_reference_t<span class="sy1"><</span>Gen<span class="sy1">>></span> <span class="sy3">&&</span>
|
|
ConvertibleTo<span class="sy1"><</span>result_of_t<span class="sy1"><</span>Gen<span class="sy3">&</span><span class="br0">(</span><span class="br0">)</span><span class="sy1">></span>, difference_type_t<span class="sy1"><</span>I<span class="sy1">>></span>
|
|
safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>
|
|
shuffle<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, Gen<span class="sy3">&&</span> g<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectUnaryPredicate<span class="sy1"><</span>projected<span class="sy1"><</span>I, Proj<span class="sy1">>></span> Pred<span class="sy1">></span>
|
|
<span class="kw4">bool</span> is_partitioned<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectUnaryPredicate<span class="sy1"><</span>projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">>></span> Pred<span class="sy1">></span>
|
|
<span class="kw4">bool</span>
|
|
is_partitioned<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectUnaryPredicate<span class="sy1"><</span>projected<span class="sy1"><</span>I, Proj<span class="sy1">>></span> Pred<span class="sy1">></span>
|
|
requires Permutable<span class="sy1"><</span>I<span class="sy1">></span>
|
|
I partition<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectUnaryPredicate<span class="sy1"><</span>projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">>></span> Pred<span class="sy1">></span>
|
|
requires Permutable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">>></span>
|
|
safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>
|
|
partition<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>BidirectionalIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectUnaryPredicate<span class="sy1"><</span>projected<span class="sy1"><</span>I, Proj<span class="sy1">>></span> Pred<span class="sy1">></span>
|
|
requires Permutable<span class="sy1"><</span>I<span class="sy1">></span>
|
|
I stable_partition<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>BidirectionalRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectUnaryPredicate<span class="sy1"><</span>projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">>></span> Pred<span class="sy1">></span>
|
|
requires Permutable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">>></span>
|
|
safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>
|
|
stable_partition<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, WeaklyIncrementable O1, WeaklyIncrementable O2,
|
|
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity, IndirectUnaryPredicate<span class="sy1"><</span>projected<span class="sy1"><</span>I, Proj<span class="sy1">>></span> Pred<span class="sy1">></span>
|
|
requires IndirectlyCopyable<span class="sy1"><</span>I, O1<span class="sy1">></span> <span class="sy3">&&</span> IndirectlyCopyable<span class="sy1"><</span>I, O2<span class="sy1">></span>
|
|
tagged_tuple<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out1</span><span class="br0">(</span>O1<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out2</span><span class="br0">(</span>O2<span class="br0">)</span><span class="sy1">></span>
|
|
partition_copy<span class="br0">(</span>I first, S last, O1 out_true, O2 out_false, Pred pred,
|
|
Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputRange Rng, WeaklyIncrementable O1, WeaklyIncrementable O2,
|
|
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectUnaryPredicate<span class="sy1"><</span>projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">>></span> Pred<span class="sy1">></span>
|
|
requires IndirectlyCopyable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, O1<span class="sy1">></span> <span class="sy3">&&</span>
|
|
IndirectlyCopyable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, O2<span class="sy1">></span>
|
|
tagged_tuple<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in</span><span class="br0">(</span>safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out1</span><span class="br0">(</span>O1<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out2</span><span class="br0">(</span>O2<span class="br0">)</span><span class="sy1">></span>
|
|
partition_copy<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, O1 out_true, O2 out_false, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectUnaryPredicate<span class="sy1"><</span>projected<span class="sy1"><</span>I, Proj<span class="sy1">>></span> Pred<span class="sy1">></span>
|
|
I partition_point<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectUnaryPredicate<span class="sy1"><</span>projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">>></span> Pred<span class="sy1">></span>
|
|
safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>
|
|
partition_point<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, Pred pred, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>RandomAccessIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1"><></span>,
|
|
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Sortable<span class="sy1"><</span>I, Comp, Proj<span class="sy1">></span>
|
|
I sort<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>RandomAccessRange Rng, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1"><></span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Sortable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Comp, Proj<span class="sy1">></span>
|
|
safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>
|
|
sort<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>RandomAccessIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1"><></span>,
|
|
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Sortable<span class="sy1"><</span>I, Comp, Proj<span class="sy1">></span>
|
|
I stable_sort<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>RandomAccessRange Rng, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1"><></span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Sortable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Comp, Proj<span class="sy1">></span>
|
|
safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>
|
|
stable_sort<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>RandomAccessIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1"><></span>,
|
|
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Sortable<span class="sy1"><</span>I, Comp, Proj<span class="sy1">></span>
|
|
I partial_sort<span class="br0">(</span>I first, I middle, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>RandomAccessRange Rng, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1"><></span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Sortable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Comp, Proj<span class="sy1">></span>
|
|
safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>
|
|
partial_sort<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span> middle, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
|
|
Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputIterator I1, Sentinel<span class="sy1"><</span>I1<span class="sy1">></span> S1, RandomAccessIterator I2, Sentinel<span class="sy1"><</span>I2<span class="sy1">></span> S2,
|
|
<span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1"><></span>, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires IndirectlyCopyable<span class="sy1"><</span>I1, I2<span class="sy1">></span> <span class="sy3">&&</span> Sortable<span class="sy1"><</span>I2, Comp, Proj2<span class="sy1">></span> <span class="sy3">&&</span>
|
|
IndirectStrictWeakOrder<span class="sy1"><</span>Comp, projected<span class="sy1"><</span>I1, Proj1<span class="sy1">></span>, projected<span class="sy1"><</span>I2, Proj2<span class="sy1">>></span>
|
|
I2
|
|
partial_sort_copy<span class="br0">(</span>I1 first, S1 last, I2 result_first, S2 result_last,
|
|
Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputRange Rng1, RandomAccessRange Rng2, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1"><></span>,
|
|
<span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires IndirectlyCopyable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng1<span class="sy1">></span>, iterator_t<span class="sy1"><</span>Rng2<span class="sy1">>></span> <span class="sy3">&&</span>
|
|
Sortable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng2<span class="sy1">></span>, Comp, Proj2<span class="sy1">></span> <span class="sy3">&&</span>
|
|
IndirectStrictWeakOrder<span class="sy1"><</span>Comp, projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng1<span class="sy1">></span>, Proj1<span class="sy1">></span>,
|
|
projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng2<span class="sy1">></span>, Proj2<span class="sy1">>></span>
|
|
safe_iterator_t<span class="sy1"><</span>Rng2<span class="sy1">></span>
|
|
partial_sort_copy<span class="br0">(</span>Rng1<span class="sy3">&&</span> rng, Rng2<span class="sy3">&&</span> result_rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
|
|
Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectStrictWeakOrder<span class="sy1"><</span>projected<span class="sy1"><</span>I, Proj<span class="sy1">>></span> Comp <span class="sy1">=</span> less<span class="sy1"><>></span>
|
|
<span class="kw4">bool</span> is_sorted<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectStrictWeakOrder<span class="sy1"><</span>projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">>></span> Comp <span class="sy1">=</span> less<span class="sy1"><>></span>
|
|
<span class="kw4">bool</span>
|
|
is_sorted<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectStrictWeakOrder<span class="sy1"><</span>projected<span class="sy1"><</span>I, Proj<span class="sy1">>></span> Comp <span class="sy1">=</span> less<span class="sy1"><>></span>
|
|
I is_sorted_until<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectStrictWeakOrder<span class="sy1"><</span>projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">>></span> Comp <span class="sy1">=</span> less<span class="sy1"><>></span>
|
|
safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>
|
|
is_sorted_until<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>RandomAccessIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1"><></span>,
|
|
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Sortable<span class="sy1"><</span>I, Comp, Proj<span class="sy1">></span>
|
|
I nth_element<span class="br0">(</span>I first, I nth, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>RandomAccessRange Rng, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1"><></span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Sortable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Comp, Proj<span class="sy1">></span>
|
|
safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>
|
|
nth_element<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span> nth, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectStrictWeakOrder<span class="sy1"><</span><span class="kw4">const</span> T<span class="sy2">*</span>, projected<span class="sy1"><</span>I, Proj<span class="sy1">>></span> Comp <span class="sy1">=</span> less<span class="sy1"><>></span>
|
|
I
|
|
lower_bound<span class="br0">(</span>I first, S last, <span class="kw4">const</span> T<span class="sy3">&</span> value, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
|
|
Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardRange Rng, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectStrictWeakOrder<span class="sy1"><</span><span class="kw4">const</span> T<span class="sy2">*</span>, projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">>></span> Comp <span class="sy1">=</span> less<span class="sy1"><>></span>
|
|
safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>
|
|
lower_bound<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, <span class="kw4">const</span> T<span class="sy3">&</span> value, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectStrictWeakOrder<span class="sy1"><</span><span class="kw4">const</span> T<span class="sy2">*</span>, projected<span class="sy1"><</span>I, Proj<span class="sy1">>></span> Comp <span class="sy1">=</span> less<span class="sy1"><>></span>
|
|
I
|
|
upper_bound<span class="br0">(</span>I first, S last, <span class="kw4">const</span> T<span class="sy3">&</span> value, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardRange Rng, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectStrictWeakOrder<span class="sy1"><</span><span class="kw4">const</span> T<span class="sy2">*</span>, projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">>></span> Comp <span class="sy1">=</span> less<span class="sy1"><>></span>
|
|
safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>
|
|
upper_bound<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, <span class="kw4">const</span> T<span class="sy3">&</span> value, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectStrictWeakOrder<span class="sy1"><</span><span class="kw4">const</span> T<span class="sy2">*</span>, projected<span class="sy1"><</span>I, Proj<span class="sy1">>></span> Comp <span class="sy1">=</span> less<span class="sy1"><>></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">begin</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">end</span><span class="br0">(</span>I<span class="br0">)</span><span class="sy1">></span>
|
|
equal_range<span class="br0">(</span>I first, S last, <span class="kw4">const</span> T<span class="sy3">&</span> value, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardRange Rng, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectStrictWeakOrder<span class="sy1"><</span><span class="kw4">const</span> T<span class="sy2">*</span>, projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">>></span> Comp <span class="sy1">=</span> less<span class="sy1"><>></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">begin</span><span class="br0">(</span>safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span><span class="br0">)</span>,
|
|
tag<span class="sy4">::</span><span class="me2">end</span><span class="br0">(</span>safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span><span class="br0">)</span><span class="sy1">></span>
|
|
equal_range<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, <span class="kw4">const</span> T<span class="sy3">&</span> value, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectStrictWeakOrder<span class="sy1"><</span><span class="kw4">const</span> T<span class="sy2">*</span>, projected<span class="sy1"><</span>I, Proj<span class="sy1">>></span> Comp <span class="sy1">=</span> less<span class="sy1"><>></span>
|
|
<span class="kw4">bool</span>
|
|
binary_search<span class="br0">(</span>I first, S last, <span class="kw4">const</span> T<span class="sy3">&</span> value, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
|
|
Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardRange Rng, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectStrictWeakOrder<span class="sy1"><</span><span class="kw4">const</span> T<span class="sy2">*</span>, projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">>></span> Comp <span class="sy1">=</span> less<span class="sy1"><>></span>
|
|
<span class="kw4">bool</span>
|
|
binary_search<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, <span class="kw4">const</span> T<span class="sy3">&</span> value, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
|
|
Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputIterator I1, Sentinel<span class="sy1"><</span>I1<span class="sy1">></span> S1, InputIterator I2, Sentinel<span class="sy1"><</span>I2<span class="sy1">></span> S2,
|
|
WeaklyIncrementable O, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1"><></span>, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity,
|
|
<span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Mergeable<span class="sy1"><</span>I1, I2, O, Comp, Proj1, Proj2<span class="sy1">></span>
|
|
tagged_tuple<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>I1<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">in2</span><span class="br0">(</span>I2<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">></span>
|
|
merge<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2, O result,
|
|
Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputRange Rng1, InputRange Rng2, WeaklyIncrementable O, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1"><></span>,
|
|
<span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Mergeable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng1<span class="sy1">></span>, iterator_t<span class="sy1"><</span>Rng2<span class="sy1">></span>, O, Comp, Proj1, Proj2<span class="sy1">></span>
|
|
tagged_tuple<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>safe_iterator_t<span class="sy1"><</span>Rng1<span class="sy1">></span><span class="br0">)</span>,
|
|
tag<span class="sy4">::</span><span class="me2">in2</span><span class="br0">(</span>safe_iterator_t<span class="sy1"><</span>Rng2<span class="sy1">></span><span class="br0">)</span>,
|
|
tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">></span>
|
|
merge<span class="br0">(</span>Rng1<span class="sy3">&&</span> rng1, Rng2<span class="sy3">&&</span> rng2, O result,
|
|
Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>BidirectionalIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1"><></span>,
|
|
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Sortable<span class="sy1"><</span>I, Comp, Proj<span class="sy1">></span>
|
|
I
|
|
inplace_merge<span class="br0">(</span>I first, I middle, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>BidirectionalRange Rng, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1"><></span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Sortable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Comp, Proj<span class="sy1">></span>
|
|
safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>
|
|
inplace_merge<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span> middle, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
|
|
Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputIterator I1, Sentinel<span class="sy1"><</span>I1<span class="sy1">></span> S1, InputIterator I2, Sentinel<span class="sy1"><</span>I2<span class="sy1">></span> S2,
|
|
<span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity,
|
|
IndirectStrictWeakOrder<span class="sy1"><</span>projected<span class="sy1"><</span>I1, Proj1<span class="sy1">></span>, projected<span class="sy1"><</span>I2, Proj2<span class="sy1">>></span> Comp <span class="sy1">=</span> less<span class="sy1"><>></span>
|
|
<span class="kw4">bool</span>
|
|
includes<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
|
|
Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputRange Rng1, InputRange Rng2, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity,
|
|
<span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity,
|
|
IndirectStrictWeakOrder<span class="sy1"><</span>projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng1<span class="sy1">></span>, Proj1<span class="sy1">></span>,
|
|
projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng2<span class="sy1">></span>, Proj2<span class="sy1">>></span> Comp <span class="sy1">=</span> less<span class="sy1"><>></span>
|
|
<span class="kw4">bool</span>
|
|
includes<span class="br0">(</span>Rng1<span class="sy3">&&</span> rng1, Rng2<span class="sy3">&&</span> rng2, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
|
|
Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputIterator I1, Sentinel<span class="sy1"><</span>I1<span class="sy1">></span> S1, InputIterator I2, Sentinel<span class="sy1"><</span>I2<span class="sy1">></span> S2,
|
|
WeaklyIncrementable O, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1"><></span>,
|
|
<span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Mergeable<span class="sy1"><</span>I1, I2, O, Comp, Proj1, Proj2<span class="sy1">></span>
|
|
tagged_tuple<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>I1<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">in2</span><span class="br0">(</span>I2<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">></span>
|
|
set_union<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2, O result, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
|
|
Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputRange Rng1, InputRange Rng2, WeaklyIncrementable O,
|
|
<span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1"><></span>, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Mergeable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng1<span class="sy1">></span>, iterator_t<span class="sy1"><</span>Rng2<span class="sy1">></span>, O, Comp, Proj1, Proj2<span class="sy1">></span>
|
|
tagged_tuple<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>safe_iterator_t<span class="sy1"><</span>Rng1<span class="sy1">></span><span class="br0">)</span>,
|
|
tag<span class="sy4">::</span><span class="me2">in2</span><span class="br0">(</span>safe_iterator_t<span class="sy1"><</span>Rng2<span class="sy1">></span><span class="br0">)</span>,
|
|
tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">></span>
|
|
set_union<span class="br0">(</span>Rng1<span class="sy3">&&</span> rng1, Rng2<span class="sy3">&&</span> rng2, O result, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
|
|
Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputIterator I1, Sentinel<span class="sy1"><</span>I1<span class="sy1">></span> S1, InputIterator I2, Sentinel<span class="sy1"><</span>I2<span class="sy1">></span> S2,
|
|
WeaklyIncrementable O, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1"><></span>,
|
|
<span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Mergeable<span class="sy1"><</span>I1, I2, O, Comp, Proj1, Proj2<span class="sy1">></span>
|
|
O
|
|
set_intersection<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2, O result,
|
|
Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputRange Rng1, InputRange Rng2, WeaklyIncrementable O,
|
|
<span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1"><></span>, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Mergeable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng1<span class="sy1">></span>, iterator_t<span class="sy1"><</span>Rng2<span class="sy1">></span>, O, Comp, Proj1, Proj2<span class="sy1">></span>
|
|
O
|
|
set_intersection<span class="br0">(</span>Rng1<span class="sy3">&&</span> rng1, Rng2<span class="sy3">&&</span> rng2, O result,
|
|
Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputIterator I1, Sentinel<span class="sy1"><</span>I1<span class="sy1">></span> S1, InputIterator I2, Sentinel<span class="sy1"><</span>I2<span class="sy1">></span> S2,
|
|
WeaklyIncrementable O, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1"><></span>,
|
|
<span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Mergeable<span class="sy1"><</span>I1, I2, O, Comp, Proj1, Proj2<span class="sy1">></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>I1<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">></span>
|
|
set_difference<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2, O result,
|
|
Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputRange Rng1, InputRange Rng2, WeaklyIncrementable O,
|
|
<span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1"><></span>, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Mergeable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng1<span class="sy1">></span>, iterator_t<span class="sy1"><</span>Rng2<span class="sy1">></span>, O, Comp, Proj1, Proj2<span class="sy1">></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>safe_iterator_t<span class="sy1"><</span>Rng1<span class="sy1">></span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">></span>
|
|
set_difference<span class="br0">(</span>Rng1<span class="sy3">&&</span> rng1, Rng2<span class="sy3">&&</span> rng2, O result,
|
|
Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputIterator I1, Sentinel<span class="sy1"><</span>I1<span class="sy1">></span> S1, InputIterator I2, Sentinel<span class="sy1"><</span>I2<span class="sy1">></span> S2,
|
|
WeaklyIncrementable O, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1"><></span>,
|
|
<span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Mergeable<span class="sy1"><</span>I1, I2, O, Comp, Proj1, Proj2<span class="sy1">></span>
|
|
tagged_tuple<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>I1<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">in2</span><span class="br0">(</span>I2<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">></span>
|
|
set_symmetric_difference<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2, O result,
|
|
Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>,
|
|
Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputRange Rng1, InputRange Rng2, WeaklyIncrementable O,
|
|
<span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1"><></span>, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Mergeable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng1<span class="sy1">></span>, iterator_t<span class="sy1"><</span>Rng2<span class="sy1">></span>, O, Comp, Proj1, Proj2<span class="sy1">></span>
|
|
tagged_tuple<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">in1</span><span class="br0">(</span>safe_iterator_t<span class="sy1"><</span>Rng1<span class="sy1">></span><span class="br0">)</span>,
|
|
tag<span class="sy4">::</span><span class="me2">in2</span><span class="br0">(</span>safe_iterator_t<span class="sy1"><</span>Rng2<span class="sy1">></span><span class="br0">)</span>,
|
|
tag<span class="sy4">::</span><span class="me2">out</span><span class="br0">(</span>O<span class="br0">)</span><span class="sy1">></span>
|
|
set_symmetric_difference<span class="br0">(</span>Rng1<span class="sy3">&&</span> rng1, Rng2<span class="sy3">&&</span> rng2, O result, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
|
|
Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>RandomAccessIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1"><></span>,
|
|
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Sortable<span class="sy1"><</span>I, Comp, Proj<span class="sy1">></span>
|
|
I push_heap<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">==</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>RandomAccessRange Rng, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1"><></span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Sortable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Comp, Proj<span class="sy1">></span>
|
|
safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>
|
|
push_heap<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>RandomAccessIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1"><></span>,
|
|
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Sortable<span class="sy1"><</span>I, Comp, Proj<span class="sy1">></span>
|
|
I pop_heap<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>RandomAccessRange Rng, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1"><></span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Sortable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Comp, Proj<span class="sy1">></span>
|
|
safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>
|
|
pop_heap<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>RandomAccessIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1"><></span>,
|
|
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Sortable<span class="sy1"><</span>I, Comp, Proj<span class="sy1">></span>
|
|
I make_heap<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>RandomAccessRange Rng, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1"><></span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Sortable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Comp, Proj<span class="sy1">></span>
|
|
safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>
|
|
make_heap<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>RandomAccessIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1"><></span>,
|
|
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Sortable<span class="sy1"><</span>I, Comp, Proj<span class="sy1">></span>
|
|
I sort_heap<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>RandomAccessRange Rng, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1"><></span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Sortable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Comp, Proj<span class="sy1">></span>
|
|
safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>
|
|
sort_heap<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>RandomAccessIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectStrictWeakOrder<span class="sy1"><</span>projected<span class="sy1"><</span>I, Proj<span class="sy1">>></span> Comp <span class="sy1">=</span> less<span class="sy1"><>></span>
|
|
<span class="kw4">bool</span> is_heap<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>RandomAccessRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectStrictWeakOrder<span class="sy1"><</span>projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">>></span> Comp <span class="sy1">=</span> less<span class="sy1"><>></span>
|
|
<span class="kw4">bool</span>
|
|
is_heap<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>RandomAccessIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectStrictWeakOrder<span class="sy1"><</span>projected<span class="sy1"><</span>I, Proj<span class="sy1">>></span> Comp <span class="sy1">=</span> less<span class="sy1"><>></span>
|
|
I is_heap_until<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>RandomAccessRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectStrictWeakOrder<span class="sy1"><</span>projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">>></span> Comp <span class="sy1">=</span> less<span class="sy1"><>></span>
|
|
safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>
|
|
is_heap_until<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectStrictWeakOrder<span class="sy1"><</span>projected<span class="sy1"><</span><span class="kw4">const</span> T<span class="sy2">*</span>, Proj<span class="sy1">>></span> Comp <span class="sy1">=</span> less<span class="sy1"><>></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">const</span> T<span class="sy3">&</span> min<span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&</span> a, <span class="kw4">const</span> T<span class="sy3">&</span> b, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Copyable T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectStrictWeakOrder<span class="sy1"><</span>projected<span class="sy1"><</span><span class="kw4">const</span> T<span class="sy2">*</span>, Proj<span class="sy1">>></span> Comp <span class="sy1">=</span> less<span class="sy1"><>></span>
|
|
<span class="kw4">constexpr</span> T min<span class="br0">(</span>initializer_list<span class="sy1"><</span>T<span class="sy1">></span> t, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectStrictWeakOrder<span class="sy1"><</span>projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">>></span> Comp <span class="sy1">=</span> less<span class="sy1"><>></span>
|
|
requires Copyable<span class="sy1"><</span>value_type_t<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">>>></span>
|
|
value_type_t<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">>></span>
|
|
min<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectStrictWeakOrder<span class="sy1"><</span>projected<span class="sy1"><</span><span class="kw4">const</span> T<span class="sy2">*</span>, Proj<span class="sy1">>></span> Comp <span class="sy1">=</span> less<span class="sy1"><>></span>
|
|
<span class="kw4">constexpr</span> <span class="kw4">const</span> T<span class="sy3">&</span> max<span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&</span> a, <span class="kw4">const</span> T<span class="sy3">&</span> b, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Copyable T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectStrictWeakOrder<span class="sy1"><</span>projected<span class="sy1"><</span><span class="kw4">const</span> T<span class="sy2">*</span>, Proj<span class="sy1">>></span> Comp <span class="sy1">=</span> less<span class="sy1"><>></span>
|
|
<span class="kw4">constexpr</span> T max<span class="br0">(</span>initializer_list<span class="sy1"><</span>T<span class="sy1">></span> t, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectStrictWeakOrder<span class="sy1"><</span>projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">>></span> Comp <span class="sy1">=</span> less<span class="sy1"><>></span>
|
|
requires Copyable<span class="sy1"><</span>value_type_t<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">>>></span>
|
|
value_type_t<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">>></span>
|
|
max<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span><span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectStrictWeakOrder<span class="sy1"><</span>projected<span class="sy1"><</span><span class="kw4">const</span> T<span class="sy2">*</span>, Proj<span class="sy1">>></span> Comp <span class="sy1">=</span> less<span class="sy1"><>></span>
|
|
<span class="kw4">constexpr</span> tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">min</span><span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&</span><span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">max</span><span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&</span><span class="br0">)</span><span class="sy1">></span>
|
|
minmax<span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&</span> a, <span class="kw4">const</span> T<span class="sy3">&</span> b, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>Copyable T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectStrictWeakOrder<span class="sy1"><</span>projected<span class="sy1"><</span><span class="kw4">const</span> T<span class="sy2">*</span>, Proj<span class="sy1">>></span> Comp <span class="sy1">=</span> less<span class="sy1"><>></span>
|
|
<span class="kw4">constexpr</span> tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">min</span><span class="br0">(</span>T<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">max</span><span class="br0">(</span>T<span class="br0">)</span><span class="sy1">></span>
|
|
minmax<span class="br0">(</span>initializer_list<span class="sy1"><</span>T<span class="sy1">></span> t, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectStrictWeakOrder<span class="sy1"><</span>projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">>></span> Comp <span class="sy1">=</span> less<span class="sy1"><>></span>
|
|
requires Copyable<span class="sy1"><</span>value_type_t<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">>>></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">min</span><span class="br0">(</span>value_type_t<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">>></span><span class="br0">)</span>,
|
|
tag<span class="sy4">::</span><span class="me2">max</span><span class="br0">(</span>value_type_t<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">>></span><span class="br0">)</span><span class="sy1">></span>
|
|
minmax<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectStrictWeakOrder<span class="sy1"><</span>projected<span class="sy1"><</span>I, Proj<span class="sy1">>></span> Comp <span class="sy1">=</span> less<span class="sy1"><>></span>
|
|
I min_element<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectStrictWeakOrder<span class="sy1"><</span>projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">>></span> Comp <span class="sy1">=</span> less<span class="sy1"><>></span>
|
|
safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>
|
|
min_element<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectStrictWeakOrder<span class="sy1"><</span>projected<span class="sy1"><</span>I, Proj<span class="sy1">>></span> Comp <span class="sy1">=</span> less<span class="sy1"><>></span>
|
|
I max_element<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectStrictWeakOrder<span class="sy1"><</span>projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">>></span> Comp <span class="sy1">=</span> less<span class="sy1"><>></span>
|
|
safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>
|
|
max_element<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectStrictWeakOrder<span class="sy1"><</span>projected<span class="sy1"><</span>I, Proj<span class="sy1">>></span> Comp <span class="sy1">=</span> less<span class="sy1"><>></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">min</span><span class="br0">(</span>I<span class="br0">)</span>, tag<span class="sy4">::</span><span class="me2">max</span><span class="br0">(</span>I<span class="br0">)</span><span class="sy1">></span>
|
|
minmax_element<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>ForwardRange Rng, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
|
|
IndirectStrictWeakOrder<span class="sy1"><</span>projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Proj<span class="sy1">>></span> Comp <span class="sy1">=</span> less<span class="sy1"><>></span>
|
|
tagged_pair<span class="sy1"><</span>tag<span class="sy4">::</span><span class="me2">min</span><span class="br0">(</span>safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span><span class="br0">)</span>,
|
|
tag<span class="sy4">::</span><span class="me2">max</span><span class="br0">(</span>safe_iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span><span class="br0">)</span><span class="sy1">></span>
|
|
minmax_element<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputIterator I1, Sentinel<span class="sy1"><</span>I1<span class="sy1">></span> S1, InputIterator I2, Sentinel<span class="sy1"><</span>I2<span class="sy1">></span> S2,
|
|
<span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity,
|
|
IndirectStrictWeakOrder<span class="sy1"><</span>projected<span class="sy1"><</span>I1, Proj1<span class="sy1">></span>, projected<span class="sy1"><</span>I2, Proj2<span class="sy1">>></span> Comp <span class="sy1">=</span> less<span class="sy1"><>></span>
|
|
<span class="kw4">bool</span>
|
|
lexicographical_compare<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2,
|
|
Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
|
|
Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>InputRange Rng1, InputRange Rng2, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity,
|
|
<span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity,
|
|
IndirectStrictWeakOrder<span class="sy1"><</span>projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng1<span class="sy1">></span>, Proj1<span class="sy1">></span>,
|
|
projected<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng2<span class="sy1">></span>, Proj2<span class="sy1">>></span> Comp <span class="sy1">=</span> less<span class="sy1"><>></span>
|
|
<span class="kw4">bool</span>
|
|
lexicographical_compare<span class="br0">(</span>Rng1<span class="sy3">&&</span> rng1, Rng2<span class="sy3">&&</span> rng2, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>,
|
|
Proj1 proj1 <span class="sy1">=</span> Proj1<span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> Proj2<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>BidirectionalIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1"><></span>,
|
|
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Sortable<span class="sy1"><</span>I, Comp, Proj<span class="sy1">></span>
|
|
<span class="kw4">bool</span> next_permutation<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>BidirectionalRange Rng, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1"><></span>,
|
|
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Sortable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Comp, Proj<span class="sy1">></span>
|
|
<span class="kw4">bool</span>
|
|
next_permutation<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>BidirectionalIterator I, Sentinel<span class="sy1"><</span>I<span class="sy1">></span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1"><></span>,
|
|
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Sortable<span class="sy1"><</span>I, Comp, Proj<span class="sy1">></span>
|
|
<span class="kw4">bool</span> prev_permutation<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="kw1">template</span> <span class="sy1"><</span>BidirectionalRange Rng, <span class="kw1">class</span> Comp <span class="sy1">=</span> less<span class="sy1"><></span>,
|
|
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">></span>
|
|
requires Sortable<span class="sy1"><</span>iterator_t<span class="sy1"><</span>Rng<span class="sy1">></span>, Comp, Proj<span class="sy1">></span>
|
|
<span class="kw4">bool</span>
|
|
prev_permutation<span class="br0">(</span>Rng<span class="sy3">&&</span> rng, Comp comp <span class="sy1">=</span> Comp<span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> Proj<span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<span class="br0">}</span><span class="br0">}</span><span class="br0">}</span><span class="br0">}</span></pre></div>
|
|
</div>
|
|
</div>
|
|
<div class="visualClear"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|