Files
hustoj/web/cppreference-zh/chmhelp/cpp-header-algorithm.html
2025-08-01 12:57:54 +08:00

4179 lines
410 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>&#26631;&#20934;&#24211;&#22836;&#25991;&#20214; &lt;algorithm&gt;</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_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%">&#26631;&#20934;&#24211;&#22836;&#25991;&#20214;</span> &lt;algorithm&gt;</h1>
<div id="bodyContent">
<div id="contentSub"><span class="subpages">&lt; <a href="cpp.html">cpp</a>&lrm; | <a href="cpp-header.html">header</a></span></div>
<div id="mw-content-text" lang="zh" dir="ltr" class="mw-content-ltr" xml:lang="zh">
<p>&#27492;&#22836;&#25991;&#20214;&#26159;<a href="cpp-algorithm.html">&#31639;&#27861;</a>&#24211;&#30340;&#19968;&#37096;&#20998;&#12290;</p>
<table class="t-dsc-begin">
<tr>
<td colspan="2">
<h3><span class="mw-headline" id=".E5.8C.85.E5.90.AB">&#21253;&#21547;</span></h3>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-header-initializer_list.html"><span class="t-lines"><span>&lt;initializer_list&gt;</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td><span class="t-lc"><a href="cpp-utility-initializer_list.html">std::initializer_list</a></span> &#31867;&#27169;&#26495;</td>
</tr>
<tr>
<td colspan="2">
<h3><span class="mw-headline" id=".E7.B1.BB">&#31867;</span></h3>
</td>
</tr>
<tr class="t-dsc-header">
<td colspan="2">
<div>&#23450;&#20041;&#20110;&#21629;&#21517;&#31354;&#38388; <code>std::ranges</code></div>
</td>
</tr>
<tr>
<td colspan="2">
<h5><span class="mw-headline" id=".E8.BF.94.E5.9B.9E.E7.B1.BB.E5.9E.8B">&#36820;&#22238;&#31867;&#22411;</span></h5>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-return_types-in_fun_result.html"><span class="t-lines"><span>ranges::in_fun_result</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#25552;&#20379;&#23384;&#20648;&#19968;&#20010;&#36845;&#20195;&#22120;&#19982;&#19968;&#20010;&#20989;&#25968;&#23545;&#35937;&#20026;&#21333;&#20010;&#21333;&#20803;&#30340;&#26041;&#24335;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-return_types-in_in_result.html"><span class="t-lines"><span>ranges::in_in_result</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#25552;&#20379;&#23384;&#20648;&#20108;&#20010;&#36845;&#20195;&#22120;&#20026;&#21333;&#20010;&#21333;&#20803;&#30340;&#26041;&#24335;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-return_types-in_out_result.html"><span class="t-lines"><span>ranges::in_out_result</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#25552;&#20379;&#23384;&#20648;&#20108;&#20010;&#36845;&#20195;&#22120;&#20026;&#21333;&#20010;&#21333;&#20803;&#30340;&#26041;&#24335;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-return_types-in_in_out_result.html"><span class="t-lines"><span>ranges::in_in_out_result</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#25552;&#20379;&#23384;&#20648;&#19977;&#20010;&#36845;&#20195;&#22120;&#20026;&#21333;&#20010;&#21333;&#20803;&#30340;&#26041;&#24335;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-return_types-in_out_out_result.html"><span class="t-lines"><span>ranges::in_out_out_result</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#25552;&#20379;&#23384;&#20648;&#19977;&#20010;&#36845;&#20195;&#22120;&#20026;&#21333;&#20010;&#21333;&#20803;&#30340;&#26041;&#24335;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-return_types-min_max_result.html"><span class="t-lines"><span>ranges::min_max_result</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#25552;&#20379;&#23384;&#20648;&#20108;&#20010;&#21516;&#31867;&#22411;&#23545;&#35937;&#25110;&#24341;&#29992;&#20026;&#21333;&#20010;&#21333;&#20803;&#30340;&#26041;&#24335;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-return_types-in_found_result.html"><span class="t-lines"><span>ranges::in_found_result</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#25552;&#20379;&#23384;&#20648;&#19968;&#20010;&#36845;&#20195;&#22120;&#19982;&#19968;&#20010;&#24067;&#23572;&#26631;&#24535;&#20026;&#21333;&#20010;&#21333;&#20803;&#30340;&#26041;&#24335;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr>
<td colspan="2">
<h3><span class="mw-headline" id=".E5.87.BD.E6.95.B0">&#20989;&#25968;</span></h3>
</td>
</tr>
<tr>
<td colspan="2">
<h5><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">&#19981;&#20462;&#25913;&#24207;&#21015;&#30340;&#25805;&#20316;</span></h5>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-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><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td>&#26816;&#26597;&#35859;&#35789;&#26159;&#21542;&#23545;&#33539;&#22260;&#20013;&#25152;&#26377;&#12289;&#20219;&#19968;&#25110;&#26080;&#20803;&#32032;&#20026; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw2">true</span></span></span><br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-for_each.html"><span class="t-lines"><span>for_each</span></span></a></div>
</div>
</td>
<td>&#24212;&#29992;&#20989;&#25968;&#21040;&#33539;&#22260;&#20013;&#30340;&#20803;&#32032;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-for_each_n.html"><span class="t-lines"><span>for_each_n</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx17">(C++17)</span></span></span></div>
</div>
</td>
<td>&#24212;&#29992;&#19968;&#20010;&#20989;&#25968;&#23545;&#35937;&#21040;&#24207;&#21015;&#30340;&#21069; n &#20010;&#20803;&#32032;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-count.html"><span class="t-lines"><span>count</span><span>count_if</span></span></a></div>
</div>
</td>
<td>&#36820;&#22238;&#28385;&#36275;&#25351;&#23450;&#21028;&#21035;&#26631;&#20934;&#30340;&#20803;&#32032;&#25968;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-mismatch.html"><span class="t-lines"><span>mismatch</span></span></a></div>
</div>
</td>
<td>&#23547;&#25214;&#20004;&#20010;&#33539;&#22260;&#20986;&#29616;&#19981;&#21516;&#30340;&#39318;&#20010;&#20301;&#32622;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-find.html"><span class="t-lines"><span>find</span><span>find_if</span><span>find_if_not</span></span></a></div>
<div><span class="t-lines"><span></span><span></span><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td>&#23547;&#25214;&#39318;&#20010;&#28385;&#36275;&#29305;&#23450;&#21028;&#21035;&#26631;&#20934;&#30340;&#20803;&#32032;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-find_end.html"><span class="t-lines"><span>find_end</span></span></a></div>
</div>
</td>
<td>&#22312;&#29305;&#23450;&#33539;&#22260;&#20013;&#23547;&#25214;&#26368;&#21518;&#20986;&#29616;&#30340;&#20803;&#32032;&#24207;&#21015;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-find_first_of.html"><span class="t-lines"><span>find_first_of</span></span></a></div>
</div>
</td>
<td>&#25628;&#32034;&#20803;&#32032;&#38598;&#21512;&#20013;&#30340;&#20219;&#24847;&#20803;&#32032;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-adjacent_find.html"><span class="t-lines"><span>adjacent_find</span></span></a></div>
</div>
</td>
<td>&#26597;&#25214;&#39318;&#23545;&#30456;&#37051;&#30340;&#30456;&#21516;&#65288;&#25110;&#28385;&#36275;&#32473;&#23450;&#35859;&#35789;&#30340;&#65289;&#20803;&#32032;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-search.html"><span class="t-lines"><span>search</span></span></a></div>
</div>
</td>
<td>&#25628;&#32034;&#19968;&#20010;&#20803;&#32032;&#33539;&#22260;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-search_n.html"><span class="t-lines"><span>search_n</span></span></a></div>
</div>
</td>
<td>&#22312;&#33539;&#22260;&#20013;&#25628;&#32034;&#19968;&#23450;&#37327;&#30340;&#26576;&#20010;&#20803;&#32032;&#30340;&#36830;&#32493;&#21103;&#26412;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr>
<td colspan="2">
<h5><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">&#20462;&#25913;&#24207;&#21015;&#30340;&#25805;&#20316;</span></h5>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-copy.html"><span class="t-lines"><span>copy</span><span>copy_if</span></span></a></div>
<div><span class="t-lines"><span></span><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td>&#23558;&#26576;&#19968;&#33539;&#22260;&#30340;&#20803;&#32032;&#22797;&#21046;&#21040;&#19968;&#20010;&#26032;&#30340;&#20301;&#32622;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-copy_n.html"><span class="t-lines"><span>copy_n</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td>&#23558;&#19968;&#23450;&#25968;&#30446;&#30340;&#20803;&#32032;&#22797;&#21046;&#21040;&#19968;&#20010;&#26032;&#30340;&#20301;&#32622;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-copy_backward.html"><span class="t-lines"><span>copy_backward</span></span></a></div>
</div>
</td>
<td>&#25353;&#20174;&#21518;&#24448;&#21069;&#30340;&#39034;&#24207;&#22797;&#21046;&#19968;&#20010;&#33539;&#22260;&#20869;&#30340;&#20803;&#32032;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-move.html"><span class="t-lines"><span>move</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td>&#23558;&#26576;&#19968;&#33539;&#22260;&#30340;&#20803;&#32032;&#31227;&#21160;&#21040;&#19968;&#20010;&#26032;&#30340;&#20301;&#32622;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-move_backward.html"><span class="t-lines"><span>move_backward</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td>&#25353;&#20174;&#21518;&#24448;&#21069;&#30340;&#39034;&#24207;&#31227;&#21160;&#26576;&#19968;&#33539;&#22260;&#30340;&#20803;&#32032;&#21040;&#26032;&#30340;&#20301;&#32622;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-fill.html"><span class="t-lines"><span>fill</span></span></a></div>
</div>
</td>
<td>&#23558;&#19968;&#20010;&#32473;&#23450;&#20540;&#22797;&#21046;&#36171;&#20540;&#32473;&#19968;&#20010;&#33539;&#22260;&#20869;&#30340;&#27599;&#20010;&#20803;&#32032;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-fill_n.html"><span class="t-lines"><span>fill_n</span></span></a></div>
</div>
</td>
<td>&#23558;&#19968;&#20010;&#32473;&#23450;&#20540;&#22797;&#21046;&#36171;&#20540;&#32473;&#19968;&#20010;&#33539;&#22260;&#20869;&#30340; N &#20010;&#20803;&#32032;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-transform.html"><span class="t-lines"><span>transform</span></span></a></div>
</div>
</td>
<td>&#23558;&#19968;&#20010;&#20989;&#25968;&#24212;&#29992;&#20110;&#26576;&#19968;&#33539;&#22260;&#30340;&#21508;&#20010;&#20803;&#32032;&#65292;&#24182;&#22312;&#30446;&#26631;&#33539;&#22260;&#23384;&#20648;&#32467;&#26524;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-generate.html"><span class="t-lines"><span>generate</span></span></a></div>
</div>
</td>
<td>&#23558;&#30456;&#32487;&#30340;&#20989;&#25968;&#35843;&#29992;&#32467;&#26524;&#36171;&#20540;&#32473;&#19968;&#20010;&#33539;&#22260;&#20013;&#30340;&#27599;&#20010;&#20803;&#32032;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-generate_n.html"><span class="t-lines"><span>generate_n</span></span></a></div>
</div>
</td>
<td>&#23558;&#30456;&#32487;&#30340;&#20989;&#25968;&#35843;&#29992;&#32467;&#26524;&#36171;&#20540;&#32473;&#19968;&#20010;&#33539;&#22260;&#20013;&#30340; N &#20010;&#20803;&#32032;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-remove.html"><span class="t-lines"><span>remove</span><span>remove_if</span></span></a></div>
</div>
</td>
<td>&#31227;&#38500;&#28385;&#36275;&#29305;&#23450;&#21028;&#21035;&#26631;&#20934;&#30340;&#20803;&#32032;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-remove_copy.html"><span class="t-lines"><span>remove_copy</span><span>remove_copy_if</span></span></a></div>
</div>
</td>
<td>&#22797;&#21046;&#19968;&#20010;&#33539;&#22260;&#30340;&#20803;&#32032;&#65292;&#24573;&#30053;&#28385;&#36275;&#29305;&#23450;&#21028;&#21035;&#26631;&#20934;&#30340;&#20803;&#32032;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-replace.html"><span class="t-lines"><span>replace</span><span>replace_if</span></span></a></div>
</div>
</td>
<td>&#23558;&#25152;&#26377;&#28385;&#36275;&#29305;&#23450;&#21028;&#21035;&#26631;&#20934;&#30340;&#20540;&#26367;&#25442;&#20026;&#21478;&#19968;&#20010;&#20540;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-replace_copy.html"><span class="t-lines"><span>replace_copy</span><span>replace_copy_if</span></span></a></div>
</div>
</td>
<td>&#22797;&#21046;&#19968;&#20010;&#33539;&#22260;&#20869;&#30340;&#20803;&#32032;&#65292;&#24182;&#23558;&#28385;&#36275;&#29305;&#23450;&#21028;&#21035;&#26631;&#20934;&#30340;&#20803;&#32032;&#26367;&#25442;&#20026;&#21478;&#19968;&#20010;&#20540;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-swap.html"><span class="t-lines"><span>swap</span></span></a></div>
</div>
</td>
<td>&#20132;&#25442;&#20004;&#20010;&#23545;&#35937;&#30340;&#20540;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-swap_ranges.html"><span class="t-lines"><span>swap_ranges</span></span></a></div>
</div>
</td>
<td>&#20132;&#25442;&#20004;&#20010;&#33539;&#22260;&#30340;&#20803;&#32032;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-iter_swap.html"><span class="t-lines"><span>iter_swap</span></span></a></div>
</div>
</td>
<td>&#20132;&#25442;&#20004;&#20010;&#36845;&#20195;&#22120;&#25152;&#25351;&#21521;&#30340;&#20803;&#32032;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-reverse.html"><span class="t-lines"><span>reverse</span></span></a></div>
</div>
</td>
<td>&#36870;&#36716;&#33539;&#22260;&#20013;&#30340;&#20803;&#32032;&#39034;&#24207;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-reverse_copy.html"><span class="t-lines"><span>reverse_copy</span></span></a></div>
</div>
</td>
<td>&#21019;&#24314;&#19968;&#20010;&#33539;&#22260;&#30340;&#36870;&#21521;&#21103;&#26412;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-rotate.html"><span class="t-lines"><span>rotate</span></span></a></div>
</div>
</td>
<td>&#26059;&#36716;&#33539;&#22260;&#20013;&#30340;&#20803;&#32032;&#39034;&#24207;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-rotate_copy.html"><span class="t-lines"><span>rotate_copy</span></span></a></div>
</div>
</td>
<td>&#22797;&#21046;&#24182;&#26059;&#36716;&#20803;&#32032;&#33539;&#22260;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-shift.html"><span class="t-lines"><span>shift_left</span><span>shift_right</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#36801;&#31227;&#33539;&#22260;&#20013;&#30340;&#20803;&#32032;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-random_shuffle.html"><span class="t-lines"><span>random_shuffle</span><span>shuffle</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-until-cxx17">(C++17 &#21069;)</span></span><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td>&#38543;&#26426;&#37325;&#25490;&#33539;&#22260;&#20013;&#30340;&#20803;&#32032;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-sample.html"><span class="t-lines"><span>sample</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx17">(C++17)</span></span></span></div>
</div>
</td>
<td>&#20174;&#19968;&#20010;&#24207;&#21015;&#20013;&#38543;&#26426;&#36873;&#25321; n &#20010;&#20803;&#32032;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-unique.html"><span class="t-lines"><span>unique</span></span></a></div>
</div>
</td>
<td>&#31227;&#38500;&#33539;&#22260;&#20869;&#30340;&#36830;&#32493;&#37325;&#22797;&#20803;&#32032;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-unique_copy.html"><span class="t-lines"><span>unique_copy</span></span></a></div>
</div>
</td>
<td>&#21019;&#24314;&#26576;&#33539;&#22260;&#30340;&#19981;&#21547;&#36830;&#32493;&#37325;&#22797;&#20803;&#32032;&#30340;&#21103;&#26412;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr>
<td colspan="2">
<h5><span class="mw-headline" id=".E5.88.92.E5.88.86.E6.93.8D.E4.BD.9C">&#21010;&#20998;&#25805;&#20316;</span></h5>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-is_partitioned.html"><span class="t-lines"><span>is_partitioned</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td>&#21028;&#26029;&#33539;&#22260;&#26159;&#21542;&#24050;&#25353;&#32473;&#23450;&#30340;&#35859;&#35789;&#21010;&#20998;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-partition.html"><span class="t-lines"><span>partition</span></span></a></div>
</div>
</td>
<td>&#23558;&#33539;&#22260;&#20013;&#30340;&#20803;&#32032;&#20998;&#20026;&#20004;&#32452;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-partition_copy.html"><span class="t-lines"><span>partition_copy</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td>&#22797;&#21046;&#19968;&#20010;&#33539;&#22260;&#65292;&#23558;&#21508;&#20803;&#32032;&#20998;&#20026;&#20004;&#32452;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-stable_partition.html"><span class="t-lines"><span>stable_partition</span></span></a></div>
</div>
</td>
<td>&#23558;&#20803;&#32032;&#20998;&#20026;&#20004;&#32452;&#65292;&#21516;&#26102;&#20445;&#30041;&#20854;&#30456;&#23545;&#39034;&#24207;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-partition_point.html"><span class="t-lines"><span>partition_point</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td>&#23450;&#20301;&#24050;&#21010;&#20998;&#33539;&#22260;&#30340;&#21010;&#20998;&#28857;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr>
<td colspan="2">
<h5><span class="mw-headline" id=".E6.8E.92.E5.BA.8F.E6.93.8D.E4.BD.9C">&#25490;&#24207;&#25805;&#20316;</span></h5>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-is_sorted.html"><span class="t-lines"><span>is_sorted</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td>&#26816;&#26597;&#33539;&#22260;&#26159;&#21542;&#24050;&#25353;&#21319;&#24207;&#25490;&#21015;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-is_sorted_until.html"><span class="t-lines"><span>is_sorted_until</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td>&#25214;&#20986;&#26368;&#22823;&#30340;&#24050;&#25490;&#24207;&#23376;&#33539;&#22260;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-sort.html"><span class="t-lines"><span>sort</span></span></a></div>
</div>
</td>
<td>&#23558;&#33539;&#22260;&#25353;&#21319;&#24207;&#25490;&#24207;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-partial_sort.html"><span class="t-lines"><span>partial_sort</span></span></a></div>
</div>
</td>
<td>&#25490;&#24207;&#19968;&#20010;&#33539;&#22260;&#30340;&#21069; N &#20010;&#20803;&#32032;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-partial_sort_copy.html"><span class="t-lines"><span>partial_sort_copy</span></span></a></div>
</div>
</td>
<td>&#23545;&#33539;&#22260;&#20869;&#30340;&#20803;&#32032;&#36827;&#34892;&#22797;&#21046;&#24182;&#37096;&#20998;&#25490;&#24207;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-stable_sort.html"><span class="t-lines"><span>stable_sort</span></span></a></div>
</div>
</td>
<td>&#23558;&#33539;&#22260;&#20869;&#30340;&#20803;&#32032;&#25490;&#24207;&#65292;&#21516;&#26102;&#20445;&#25345;&#30456;&#31561;&#30340;&#20803;&#32032;&#20043;&#38388;&#30340;&#39034;&#24207;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-nth_element.html"><span class="t-lines"><span>nth_element</span></span></a></div>
</div>
</td>
<td>&#23558;&#32473;&#23450;&#30340;&#33539;&#22260;&#37096;&#20998;&#25490;&#24207;&#65292;&#30830;&#20445;&#20854;&#25353;&#32473;&#23450;&#20803;&#32032;&#21010;&#20998;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr>
<td colspan="2">
<h5><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">&#65288;&#24050;&#25490;&#24207;&#33539;&#22260;&#19978;&#30340;&#65289;&#20108;&#20998;&#25628;&#32034;&#25805;&#20316;</span></h5>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-lower_bound.html"><span class="t-lines"><span>lower_bound</span></span></a></div>
</div>
</td>
<td>&#36820;&#22238;&#25351;&#21521;&#31532;&#19968;&#20010;<i>&#19981;&#23567;&#20110;</i>&#32473;&#23450;&#20540;&#30340;&#20803;&#32032;&#30340;&#36845;&#20195;&#22120;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-upper_bound.html"><span class="t-lines"><span>upper_bound</span></span></a></div>
</div>
</td>
<td>&#36820;&#22238;&#25351;&#21521;&#31532;&#19968;&#20010;<i>&#22823;&#20110;</i>&#32473;&#23450;&#20540;&#30340;&#20803;&#32032;&#30340;&#36845;&#20195;&#22120;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-binary_search.html"><span class="t-lines"><span>binary_search</span></span></a></div>
</div>
</td>
<td>&#30830;&#23450;&#20803;&#32032;&#26159;&#21542;&#23384;&#22312;&#20110;&#26576;&#33539;&#22260;&#20013;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-equal_range.html"><span class="t-lines"><span>equal_range</span></span></a></div>
</div>
</td>
<td>&#36820;&#22238;&#21305;&#37197;&#29305;&#23450;&#38190;&#20540;&#30340;&#20803;&#32032;&#33539;&#22260;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr>
<td colspan="2">
<h5><span class="mw-headline" id=".E5.85.B6.E4.BB.96.E5.B7.B2.E6.8E.92.E5.BA.8F.E8.8C.83.E5.9B.B4.E4.B8.8A.E7.9A.84.E6.93.8D.E4.BD.9C">&#20854;&#20182;&#24050;&#25490;&#24207;&#33539;&#22260;&#19978;&#30340;&#25805;&#20316;</span></h5>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-merge.html"><span class="t-lines"><span>merge</span></span></a></div>
</div>
</td>
<td>&#24402;&#24182;&#20004;&#20010;&#24050;&#25490;&#24207;&#30340;&#33539;&#22260;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-inplace_merge.html"><span class="t-lines"><span>inplace_merge</span></span></a></div>
</div>
</td>
<td>&#23601;&#22320;&#24402;&#24182;&#20004;&#20010;&#26377;&#24207;&#33539;&#22260;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr>
<td colspan="2">
<h5><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">&#65288;&#24050;&#25490;&#24207;&#33539;&#22260;&#19978;&#30340;&#65289;&#38598;&#21512;&#25805;&#20316;</span></h5>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-includes.html"><span class="t-lines"><span>includes</span></span></a></div>
</div>
</td>
<td>&#33509;&#19968;&#20010;&#24207;&#21015;&#26159;&#21478;&#19968;&#20010;&#30340;&#23376;&#21015;&#21017;&#36820;&#22238; true<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-set_difference.html"><span class="t-lines"><span>set_difference</span></span></a></div>
</div>
</td>
<td>&#35745;&#31639;&#20004;&#20010;&#38598;&#21512;&#30340;&#24046;&#38598;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-set_intersection.html"><span class="t-lines"><span>set_intersection</span></span></a></div>
</div>
</td>
<td>&#35745;&#31639;&#20004;&#20010;&#38598;&#21512;&#30340;&#20132;&#38598;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-set_symmetric_difference.html"><span class="t-lines"><span>set_symmetric_difference</span></span></a></div>
</div>
</td>
<td>&#35745;&#31639;&#20004;&#20010;&#38598;&#21512;&#30340;&#23545;&#31216;&#24046;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-set_union.html"><span class="t-lines"><span>set_union</span></span></a></div>
</div>
</td>
<td>&#35745;&#31639;&#20004;&#20010;&#38598;&#21512;&#30340;&#24182;&#38598;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr>
<td colspan="2">
<h5><span class="mw-headline" id=".E5.A0.86.E6.93.8D.E4.BD.9C">&#22534;&#25805;&#20316;</span></h5>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-is_heap.html"><span class="t-lines"><span>is_heap</span></span></a></div>
</div>
</td>
<td>&#26816;&#26597;&#32473;&#23450;&#33539;&#22260;&#26159;&#21542;&#20026;&#19968;&#20010;&#26368;&#22823;&#22534;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-is_heap_until.html"><span class="t-lines"><span>is_heap_until</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td>&#26597;&#25214;&#33021;&#25104;&#20026;&#26368;&#22823;&#22534;&#30340;&#26368;&#22823;&#23376;&#33539;&#22260;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-make_heap.html"><span class="t-lines"><span>make_heap</span></span></a></div>
</div>
</td>
<td>&#20174;&#19968;&#20010;&#20803;&#32032;&#33539;&#22260;&#21019;&#24314;&#20986;&#19968;&#20010;&#26368;&#22823;&#22534;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-push_heap.html"><span class="t-lines"><span>push_heap</span></span></a></div>
</div>
</td>
<td>&#23558;&#19968;&#20010;&#20803;&#32032;&#21152;&#20837;&#21040;&#19968;&#20010;&#26368;&#22823;&#22534;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-pop_heap.html"><span class="t-lines"><span>pop_heap</span></span></a></div>
</div>
</td>
<td>&#20174;&#26368;&#22823;&#22534;&#20013;&#31227;&#38500;&#26368;&#22823;&#20803;&#32032;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-sort_heap.html"><span class="t-lines"><span>sort_heap</span></span></a></div>
</div>
</td>
<td>&#23558;&#19968;&#20010;&#26368;&#22823;&#22534;&#21464;&#25104;&#19968;&#20010;&#25353;&#21319;&#24207;&#25490;&#24207;&#30340;&#20803;&#32032;&#33539;&#22260;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr>
<td colspan="2">
<h5><span class="mw-headline" id=".E6.9C.80.E5.B0.8F.2F.E6.9C.80.E5.A4.A7.E6.93.8D.E4.BD.9C">&#26368;&#23567;/&#26368;&#22823;&#25805;&#20316;</span></h5>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-max.html"><span class="t-lines"><span>max</span></span></a></div>
</div>
</td>
<td>&#36820;&#22238;&#21508;&#32473;&#23450;&#20540;&#20013;&#30340;&#36739;&#22823;&#32773;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-max_element.html"><span class="t-lines"><span>max_element</span></span></a></div>
</div>
</td>
<td>&#36820;&#22238;&#33539;&#22260;&#20869;&#30340;&#26368;&#22823;&#20803;&#32032;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-min.html"><span class="t-lines"><span>min</span></span></a></div>
</div>
</td>
<td>&#36820;&#22238;&#21508;&#32473;&#23450;&#20540;&#20013;&#30340;&#36739;&#23567;&#32773;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-min_element.html"><span class="t-lines"><span>min_element</span></span></a></div>
</div>
</td>
<td>&#36820;&#22238;&#33539;&#22260;&#20869;&#30340;&#26368;&#23567;&#20803;&#32032;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-minmax.html"><span class="t-lines"><span>minmax</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td>&#36820;&#22238;&#20004;&#20010;&#20803;&#32032;&#30340;&#36739;&#23567;&#21644;&#36739;&#22823;&#32773;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-minmax_element.html"><span class="t-lines"><span>minmax_element</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td>&#36820;&#22238;&#33539;&#22260;&#20869;&#30340;&#26368;&#23567;&#20803;&#32032;&#21644;&#26368;&#22823;&#20803;&#32032;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-clamp.html"><span class="t-lines"><span>clamp</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx17">(C++17)</span></span></span></div>
</div>
</td>
<td>&#22312;&#19968;&#23545;&#36793;&#30028;&#20540;&#38388;&#22841;&#36924;&#19968;&#20010;&#20540;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr>
<td colspan="2">
<h5><span class="mw-headline" id=".E6.AF.94.E8.BE.83.E6.93.8D.E4.BD.9C">&#27604;&#36739;&#25805;&#20316;</span></h5>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-equal.html"><span class="t-lines"><span>equal</span></span></a></div>
</div>
</td>
<td>&#30830;&#23450;&#20004;&#20010;&#20803;&#32032;&#38598;&#21512;&#26159;&#21542;&#26159;&#30456;&#21516;&#30340;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-lexicographical_compare.html"><span class="t-lines"><span>lexicographical_compare</span></span></a></div>
</div>
</td>
<td>&#24403;&#19968;&#20010;&#33539;&#22260;&#25353;&#23383;&#20856;&#39034;&#24207;&#23567;&#20110;&#21478;&#19968;&#20010;&#33539;&#22260;&#26102;&#65292;&#36820;&#22238; true<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-lexicographical_compare_three_way.html"><span class="t-lines"><span>lexicographical_compare_three_way</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#29992;&#19977;&#36335;&#27604;&#36739;&#27604;&#36739;&#20004;&#20010;&#33539;&#22260;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr>
<td colspan="2">
<h5><span class="mw-headline" id=".E6.8E.92.E5.88.97.E6.93.8D.E4.BD.9C">&#25490;&#21015;&#25805;&#20316;</span></h5>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-is_permutation.html"><span class="t-lines"><span>is_permutation</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td>&#21028;&#26029;&#19968;&#20010;&#24207;&#21015;&#26159;&#21542;&#20026;&#21478;&#19968;&#20010;&#24207;&#21015;&#30340;&#25490;&#21015;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-next_permutation.html"><span class="t-lines"><span>next_permutation</span></span></a></div>
</div>
</td>
<td>&#20135;&#29983;&#26576;&#20010;&#20803;&#32032;&#33539;&#22260;&#30340;&#25353;&#23383;&#20856;&#39034;&#24207;&#30340;&#19979;&#19968;&#20010;&#36739;&#22823;&#30340;&#25490;&#21015;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-prev_permutation.html"><span class="t-lines"><span>prev_permutation</span></span></a></div>
</div>
</td>
<td>&#20135;&#29983;&#26576;&#20010;&#20803;&#32032;&#33539;&#22260;&#30340;&#25353;&#23383;&#20856;&#39034;&#24207;&#30340;&#19979;&#19968;&#20010;&#36739;&#23567;&#30340;&#25490;&#21015;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr>
<td colspan="2">
<h3><span class="mw-headline" id=".E4.BB.BF.E5.87.BD.E6.95.B0.E5.AE.9E.E4.BD.93">&#20223;&#20989;&#25968;&#23454;&#20307;</span></h3>
</td>
</tr>
<tr class="t-dsc-header">
<td colspan="2">
<div>&#23450;&#20041;&#20110;&#21629;&#21517;&#31354;&#38388; <code>std::ranges</code></div>
</td>
</tr>
<tr>
<td colspan="2">
<h5><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_2">&#19981;&#20462;&#25913;&#24207;&#21015;&#30340;&#25805;&#20316;</span></h5>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-all_any_none_of.html"><span class="t-lines"><span>ranges::all_of</span><span>ranges::any_of</span><span>ranges::none_of</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#26816;&#26597;&#35859;&#35789;&#26159;&#21542;&#23545;&#33539;&#22260;&#20013;&#25152;&#26377;&#12289;&#20219;&#19968;&#25110;&#26080;&#20803;&#32032;&#20026; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw2">true</span></span></span><br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-for_each.html"><span class="t-lines"><span>ranges::for_each</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#24212;&#29992;&#20989;&#25968;&#21040;&#33539;&#22260;&#20013;&#30340;&#20803;&#32032;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-for_each_n.html"><span class="t-lines"><span>ranges::for_each_n</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#24212;&#29992;&#20989;&#25968;&#23545;&#35937;&#21040;&#24207;&#21015;&#30340;&#39318; n &#20010;&#20803;&#32032;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-count.html"><span class="t-lines"><span>ranges::count</span><span>ranges::count_if</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#36820;&#22238;&#28385;&#36275;&#25351;&#23450;&#21028;&#21035;&#26631;&#20934;&#30340;&#20803;&#32032;&#25968;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-mismatch.html"><span class="t-lines"><span>ranges::mismatch</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#23547;&#25214;&#20004;&#20010;&#33539;&#22260;&#20986;&#29616;&#19981;&#21516;&#30340;&#39318;&#20010;&#20301;&#32622;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-find.html"><span class="t-lines"><span>ranges::find</span><span>ranges::find_if</span><span>ranges::find_if_not</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#23547;&#25214;&#39318;&#20010;&#28385;&#36275;&#29305;&#23450;&#21028;&#21035;&#26631;&#20934;&#30340;&#20803;&#32032;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-find_end.html"><span class="t-lines"><span>ranges::find_end</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#22312;&#29305;&#23450;&#33539;&#22260;&#20013;&#23547;&#25214;&#26368;&#21518;&#20986;&#29616;&#30340;&#20803;&#32032;&#24207;&#21015;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-find_first_of.html"><span class="t-lines"><span>ranges::find_first_of</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#25628;&#32034;&#20803;&#32032;&#38598;&#21512;&#20013;&#30340;&#20219;&#19968;&#20803;&#32032;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-adjacent_find.html"><span class="t-lines"><span>ranges::adjacent_find</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#26597;&#25214;&#39318;&#23545;&#30456;&#37051;&#30340;&#30456;&#21516;&#65288;&#25110;&#28385;&#36275;&#32473;&#23450;&#35859;&#35789;&#30340;&#65289;&#20803;&#32032;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-search.html"><span class="t-lines"><span>ranges::search</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#25628;&#32034;&#19968;&#20010;&#20803;&#32032;&#33539;&#22260;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-search_n.html"><span class="t-lines"><span>ranges::search_n</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#22312;&#33539;&#22260;&#20013;&#25628;&#32034;&#19968;&#23450;&#37327;&#30340;&#26576;&#20010;&#20803;&#32032;&#30340;&#36830;&#32493;&#21103;&#26412;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-starts_with.html"><span class="t-lines"><span>ranges::starts_with</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx23">(C++23)</span></span></span></div>
</div>
</td>
<td>&#26816;&#26597;&#19968;&#20010;&#33539;&#22260;&#26159;&#21542;&#22987;&#20110;&#21478;&#19968;&#33539;&#22260;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-ends_with.html"><span class="t-lines"><span>ranges::ends_with</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx23">(C++23)</span></span></span></div>
</div>
</td>
<td>&#26816;&#26597;&#19968;&#20010;&#33539;&#22260;&#26159;&#21542;&#32456;&#20110;&#21478;&#19968;&#33539;&#22260;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr>
<td colspan="2">
<h5><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_2">&#20462;&#25913;&#24207;&#21015;&#30340;&#25805;&#20316;</span></h5>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-copy.html"><span class="t-lines"><span>ranges::copy</span><span>ranges::copy_if</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#23558;&#26576;&#19968;&#33539;&#22260;&#30340;&#20803;&#32032;&#22797;&#21046;&#21040;&#19968;&#20010;&#26032;&#30340;&#20301;&#32622;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-copy_n.html"><span class="t-lines"><span>ranges::copy_n</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#23558;&#19968;&#23450;&#25968;&#30446;&#30340;&#20803;&#32032;&#22797;&#21046;&#21040;&#19968;&#20010;&#26032;&#30340;&#20301;&#32622;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-copy_backward.html"><span class="t-lines"><span>ranges::copy_backward</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#25353;&#20174;&#21518;&#24448;&#21069;&#30340;&#39034;&#24207;&#22797;&#21046;&#19968;&#20010;&#33539;&#22260;&#20869;&#30340;&#20803;&#32032;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-move.html"><span class="t-lines"><span>ranges::move</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#23558;&#26576;&#19968;&#33539;&#22260;&#30340;&#20803;&#32032;&#31227;&#21160;&#21040;&#19968;&#20010;&#26032;&#30340;&#20301;&#32622;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-move_backward.html"><span class="t-lines"><span>ranges::move_backword</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#25353;&#20174;&#21518;&#24448;&#21069;&#30340;&#39034;&#24207;&#31227;&#21160;&#26576;&#19968;&#33539;&#22260;&#30340;&#20803;&#32032;&#21040;&#26032;&#30340;&#20301;&#32622;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-fill.html"><span class="t-lines"><span>ranges::fill</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#23558;&#19968;&#20010;&#32473;&#23450;&#20540;&#22797;&#21046;&#36171;&#20540;&#32473;&#19968;&#20010;&#33539;&#22260;&#20869;&#30340;&#27599;&#20010;&#20803;&#32032;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-fill_n.html"><span class="t-lines"><span>ranges::fill_n</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#23558;&#19968;&#20010;&#20540;&#22797;&#21046;&#36171;&#20540;&#32473;&#19968;&#23450;&#37327;&#30340;&#20803;&#32032;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-transform.html"><span class="t-lines"><span>ranges::transform</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#23558;&#19968;&#20010;&#20989;&#25968;&#24212;&#29992;&#20110;&#26576;&#19968;&#33539;&#22260;&#30340;&#21508;&#20010;&#20803;&#32032;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-generate.html"><span class="t-lines"><span>ranges::generate</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#20445;&#23384;&#20989;&#25968;&#32467;&#26524;&#21040;&#19968;&#20010;&#33539;&#22260;&#20013;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-generate_n.html"><span class="t-lines"><span>ranges::generate_n</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#20445;&#23384; N &#27425;&#20989;&#25968;&#24212;&#29992;&#30340;&#32467;&#26524;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-remove.html"><span class="t-lines"><span>ranges::remove</span><span>ranges::remove_if</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#31227;&#38500;&#28385;&#36275;&#29305;&#23450;&#21028;&#21035;&#26631;&#20934;&#30340;&#20803;&#32032;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-remove_copy.html"><span class="t-lines"><span>ranges::remove_copy</span><span>ranges::remove_copy_if</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#22797;&#21046;&#19968;&#20010;&#33539;&#22260;&#30340;&#20803;&#32032;&#65292;&#24573;&#30053;&#28385;&#36275;&#29305;&#23450;&#21028;&#21035;&#26631;&#20934;&#30340;&#20803;&#32032;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-replace.html"><span class="t-lines"><span>ranges::replace</span><span>ranges::replace_if</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#23558;&#25152;&#26377;&#28385;&#36275;&#29305;&#23450;&#21028;&#21035;&#26631;&#20934;&#30340;&#20540;&#26367;&#25442;&#20026;&#21478;&#19968;&#20010;&#20540;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-replace_copy.html"><span class="t-lines"><span>ranges::replace_copy</span><span>ranges::replace_copy_if</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#22797;&#21046;&#19968;&#20010;&#33539;&#22260;&#20869;&#30340;&#20803;&#32032;&#65292;&#24182;&#23558;&#28385;&#36275;&#29305;&#23450;&#21028;&#21035;&#26631;&#20934;&#30340;&#20803;&#32032;&#26367;&#25442;&#20026;&#21478;&#19968;&#20010;&#20540;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-swap_ranges.html"><span class="t-lines"><span>ranges::swap_ranges</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#20132;&#25442;&#20004;&#20010;&#33539;&#22260;&#30340;&#20803;&#32032;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-reverse.html"><span class="t-lines"><span>ranges::reverse</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#36870;&#36716;&#33539;&#22260;&#20013;&#30340;&#20803;&#32032;&#39034;&#24207;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-reverse_copy.html"><span class="t-lines"><span>ranges::revserse_copy</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#21019;&#24314;&#19968;&#20010;&#33539;&#22260;&#30340;&#36870;&#21521;&#21103;&#26412;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-rotate.html"><span class="t-lines"><span>ranges::rotate</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#26059;&#36716;&#33539;&#22260;&#20013;&#30340;&#20803;&#32032;&#39034;&#24207;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-rotate_copy.html"><span class="t-lines"><span>ranges::rotate_copy</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#22797;&#21046;&#24182;&#26059;&#36716;&#20803;&#32032;&#33539;&#22260;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-sample.html"><span class="t-lines"><span>ranges::sample</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#20174;&#24207;&#21015;&#20013;&#38543;&#26426;&#36873;&#25321; n &#20010;&#20803;&#32032;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-shuffle.html"><span class="t-lines"><span>ranges::shuffle</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#38543;&#26426;&#37325;&#25490;&#33539;&#22260;&#20013;&#30340;&#20803;&#32032;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-unique.html"><span class="t-lines"><span>ranges::unique</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#31227;&#38500;&#33539;&#22260;&#20013;&#30340;&#36830;&#32493;&#37325;&#22797;&#20803;&#32032;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-unique_copy.html"><span class="t-lines"><span>ranges::unique_copy</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#21019;&#24314;&#26576;&#33539;&#22260;&#30340;&#19981;&#21547;&#36830;&#32493;&#37325;&#22797;&#20803;&#32032;&#30340;&#21103;&#26412;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr>
<td colspan="2">
<h5><span class="mw-headline" id=".E5.88.92.E5.88.86.E6.93.8D.E4.BD.9C_2">&#21010;&#20998;&#25805;&#20316;</span></h5>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-is_partitioned.html"><span class="t-lines"><span>ranges::is_partitioned</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#21028;&#26029;&#33539;&#22260;&#26159;&#21542;&#24050;&#25353;&#32473;&#23450;&#30340;&#35859;&#35789;&#21010;&#20998;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-partition.html"><span class="t-lines"><span>ranges::partition</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#23558;&#33539;&#22260;&#20013;&#30340;&#20803;&#32032;&#20998;&#20026;&#20108;&#32452;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-partition_copy.html"><span class="t-lines"><span>ranges::partition_copy</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#22797;&#21046;&#19968;&#20010;&#33539;&#22260;&#65292;&#23558;&#21508;&#20803;&#32032;&#20998;&#20026;&#20108;&#32452;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-stable_partition.html"><span class="t-lines"><span>ranges::stable_partition</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#23558;&#20803;&#32032;&#20998;&#25104;&#20108;&#32452;&#65292;&#21516;&#26102;&#20445;&#25345;&#20854;&#30456;&#23545;&#39034;&#24207;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-partition_point.html"><span class="t-lines"><span>ranges::partition_point</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#23450;&#20301;&#24050;&#21010;&#20998;&#33539;&#22260;&#30340;&#21010;&#20998;&#28857;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr>
<td colspan="2">
<h5><span class="mw-headline" id=".E6.8E.92.E5.BA.8F.E6.93.8D.E4.BD.9C_2">&#25490;&#24207;&#25805;&#20316;</span></h5>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-is_sorted.html"><span class="t-lines"><span>ranges::is_sorted</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#26816;&#26597;&#33539;&#22260;&#26159;&#21542;&#20197;&#21319;&#24207;&#25490;&#24207;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-is_sorted_until.html"><span class="t-lines"><span>ranges::is_sorted_until</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#23547;&#25214;&#26368;&#22823;&#30340;&#24050;&#25490;&#24207;&#23376;&#33539;&#22260;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-sort.html"><span class="t-lines"><span>ranges::sort</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#23558;&#33539;&#22260;&#25353;&#21319;&#24207;&#25490;&#24207;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-partial_sort.html"><span class="t-lines"><span>ranges::partial_sort</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#25490;&#24207;&#19968;&#20010;&#33539;&#22260;&#30340;&#21069; N &#20010;&#20803;&#32032;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-partial_sort_copy.html"><span class="t-lines"><span>ranges::partial_sort_copy</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#23545;&#33539;&#22260;&#20869;&#30340;&#20803;&#32032;&#36827;&#34892;&#22797;&#21046;&#24182;&#37096;&#20998;&#25490;&#24207;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-stable_sort.html"><span class="t-lines"><span>ranges::stable_sort</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#23558;&#33539;&#22260;&#20869;&#30340;&#20803;&#32032;&#25490;&#24207;&#65292;&#21516;&#26102;&#20445;&#25345;&#30456;&#31561;&#30340;&#20803;&#32032;&#20043;&#38388;&#30340;&#39034;&#24207;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-nth_element.html"><span class="t-lines"><span>ranges::nth_element</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#23558;&#32473;&#23450;&#30340;&#33539;&#22260;&#37096;&#20998;&#25490;&#24207;&#65292;&#30830;&#20445;&#20854;&#25353;&#32473;&#23450;&#20803;&#32032;&#21010;&#20998;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr>
<td colspan="2">
<h5><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_2">&#65288;&#24050;&#25490;&#24207;&#33539;&#22260;&#19978;&#30340;&#65289;&#38598;&#21512;&#25805;&#20316;</span></h5>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-lower_bound.html"><span class="t-lines"><span>ranges::lower_bound</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#36820;&#22238;&#25351;&#21521;&#39318;&#20010;<i>&#19981;&#23567;&#20110;</i>&#32473;&#23450;&#20540;&#30340;&#20803;&#32032;&#30340;&#36845;&#20195;&#22120;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-upper_bound.html"><span class="t-lines"><span>ranges::upper_bound</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#36820;&#22238;&#25351;&#21521;&#39318;&#20010;<i>&#22823;&#20110;</i>&#26576;&#20540;&#30340;&#20803;&#32032;&#30340;&#36845;&#20195;&#22120;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-binary_search.html"><span class="t-lines"><span>ranges::binary_search</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#30830;&#23450;&#20803;&#32032;&#26159;&#21542;&#23384;&#22312;&#20110;&#26576;&#33539;&#22260;&#20013;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-equal_range.html"><span class="t-lines"><span>ranges::equal_ranges</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#36820;&#22238;&#21305;&#37197;&#29305;&#23450;&#20540;&#30340;&#20803;&#32032;&#33539;&#22260;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr>
<td colspan="2">
<h5><span class="mw-headline" id=".E5.85.B6.E4.BB.96.E5.B7.B2.E6.8E.92.E5.BA.8F.E8.8C.83.E5.9B.B4.E4.B8.8A.E7.9A.84.E6.93.8D.E4.BD.9C_2">&#20854;&#20182;&#24050;&#25490;&#24207;&#33539;&#22260;&#19978;&#30340;&#25805;&#20316;</span></h5>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-merge.html"><span class="t-lines"><span>ranges::merge</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#24402;&#24182;&#20108;&#20010;&#24050;&#25490;&#24207;&#33539;&#22260;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-inplace_merge.html"><span class="t-lines"><span>ranges::inplace_merge</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#22312;&#21407;&#20301;&#24402;&#24182;&#20004;&#20010;&#26377;&#24207;&#33539;&#22260;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr>
<td colspan="2">
<h5><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_3">&#65288;&#24050;&#25490;&#24207;&#33539;&#22260;&#19978;&#30340;&#65289;&#38598;&#21512;&#25805;&#20316;</span></h5>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-includes.html"><span class="t-lines"><span>ranges::includes</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#33509;&#19968;&#20010;&#24207;&#21015;&#26159;&#21478;&#19968;&#20010;&#30340;&#23376;&#21015;&#21017;&#36820;&#22238; <code>true</code><br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-set_difference.html"><span class="t-lines"><span>ranges::set_difference</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#35745;&#31639;&#20004;&#20010;&#38598;&#21512;&#30340;&#24046;&#38598;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-set_intersection.html"><span class="t-lines"><span>ranges::set_intersection</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#35745;&#31639;&#20004;&#20010;&#38598;&#21512;&#30340;&#20132;&#38598;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-set_symmetric_difference.html"><span class="t-lines"><span>ranges::set_symmetric_difference</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#35745;&#31639;&#20004;&#20010;&#38598;&#21512;&#30340;&#23545;&#31216;&#24046;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-set_union.html"><span class="t-lines"><span>ranges::set_union</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#35745;&#31639;&#20004;&#20010;&#38598;&#21512;&#30340;&#24182;&#38598;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr>
<td colspan="2">
<h5><span class="mw-headline" id=".E5.A0.86.E6.93.8D.E4.BD.9C_2">&#22534;&#25805;&#20316;</span></h5>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-is_heap.html"><span class="t-lines"><span>ranges::is_heap</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#26816;&#26597;&#32473;&#23450;&#33539;&#22260;&#26159;&#21542;&#20026;&#26368;&#22823;&#22534;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-is_heap_until.html"><span class="t-lines"><span>ranges::is_heap_until</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#23547;&#25214;&#33021;&#25104;&#20026;&#26368;&#22823;&#22534;&#30340;&#26368;&#22823;&#23376;&#33539;&#22260;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-make_heap.html"><span class="t-lines"><span>ranges::make_heap</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#20174;&#19968;&#20010;&#20803;&#32032;&#33539;&#22260;&#21019;&#24314;&#20986;&#19968;&#20010;&#26368;&#22823;&#22534;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-push_heap.html"><span class="t-lines"><span>ranges::push_heap</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#23558;&#19968;&#20010;&#20803;&#32032;&#21152;&#20837;&#21040;&#19968;&#20010;&#26368;&#22823;&#22534;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-pop_heap.html"><span class="t-lines"><span>ranges::pop_heap</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#20174;&#26368;&#22823;&#22534;&#20013;&#31227;&#38500;&#26368;&#22823;&#20803;&#32032;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-sort_heap.html"><span class="t-lines"><span>ranges::sort_heap</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#23558;&#19968;&#20010;&#26368;&#22823;&#22534;&#21464;&#25104;&#19968;&#20010;&#25353;&#21319;&#24207;&#25490;&#24207;&#30340;&#20803;&#32032;&#33539;&#22260;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr>
<td colspan="2">
<h5><span class="mw-headline" id=".E6.9C.80.E5.B0.8F.2F.E6.9C.80.E5.A4.A7.E6.93.8D.E4.BD.9C_2">&#26368;&#23567;/&#26368;&#22823;&#25805;&#20316;</span></h5>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-max.html"><span class="t-lines"><span>ranges::max</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#36820;&#22238;&#32473;&#23450;&#20540;&#30340;&#36739;&#22823;&#32773;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-max_element.html"><span class="t-lines"><span>ranges::max_element</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#36820;&#22238;&#33539;&#22260;&#20013;&#30340;&#26368;&#22823;&#20803;&#32032;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-min.html"><span class="t-lines"><span>ranges::min</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#36820;&#22238;&#32473;&#23450;&#20540;&#30340;&#36739;&#23567;&#32773;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-min_element.html"><span class="t-lines"><span>ranges::min_element</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#36820;&#22238;&#33539;&#22260;&#20013;&#30340;&#26368;&#23567;&#20803;&#32032;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-minmax.html"><span class="t-lines"><span>ranges::minmax</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#36820;&#22238;&#20004;&#20010;&#20803;&#32032;&#30340;&#36739;&#23567;&#21644;&#36739;&#22823;&#32773;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-minmax_element.html"><span class="t-lines"><span>ranges::minmax_element</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#36820;&#22238;&#33539;&#22260;&#20013;&#30340;&#26368;&#23567;&#21644;&#26368;&#22823;&#20803;&#32032;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-clamp.html"><span class="t-lines"><span>ranges::clamp</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#22312;&#19968;&#23545;&#36793;&#30028;&#20540;&#38388;&#22841;&#19968;&#20010;&#20540;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr>
<td colspan="2">
<h5><span class="mw-headline" id=".E6.AF.94.E8.BE.83.E6.93.8D.E4.BD.9C_2">&#27604;&#36739;&#25805;&#20316;</span></h5>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-equal.html"><span class="t-lines"><span>ranges::equal</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#30830;&#23450;&#20004;&#20010;&#20803;&#32032;&#38598;&#21512;&#26159;&#21542;&#26159;&#30456;&#21516;&#30340;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-lexicographical_compare.html"><span class="t-lines"><span>ranges::lexicographical_compare</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#24403;&#19968;&#20010;&#33539;&#22260;&#25353;&#23383;&#20856;&#39034;&#24207;&#23567;&#20110;&#21478;&#19968;&#20010;&#33539;&#22260;&#26102;&#65292;&#36820;&#22238; true<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr>
<td colspan="2">
<h5><span class="mw-headline" id=".E6.8E.92.E5.88.97.E6.93.8D.E4.BD.9C_2">&#25490;&#21015;&#25805;&#20316;</span></h5>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-is_permutation.html"><span class="t-lines"><span>ranges::is_permutation</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#30830;&#23450;&#19968;&#20010;&#24207;&#21015;&#26159;&#21542;&#20026;&#21478;&#19968;&#24207;&#21015;&#30340;&#37325;&#25490;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-algorithm-ranges-next_permutation.html"><span class="t-lines"><span>ranges::next_permutation</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#20135;&#29983;&#26576;&#20010;&#20803;&#32032;&#33539;&#22260;&#30340;&#25353;&#23383;&#20856;&#24207;&#19979;&#19968;&#20010;&#36739;&#22823;&#30340;&#25490;&#21015;<br />
<span class="t-mark">(niebloid)</span></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E6.A6.82.E8.A6.81">&#27010;&#35201;</span></h3>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="co2">#include &lt;initializer_list&gt;</span>
<span class="kw1">namespace</span> std <span class="br0">{</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="co1">// &#31639;&#27861;&#32467;&#26524;&#31867;&#22411;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I, <span class="kw1">class</span> F<span class="sy1">&gt;</span> <span class="kw1">struct</span> in_fun_result<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2<span class="sy1">&gt;</span> <span class="kw1">struct</span> in_in_result<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I, <span class="kw1">class</span> O<span class="sy1">&gt;</span> <span class="kw1">struct</span> in_out_result<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2, <span class="kw1">class</span> O<span class="sy1">&gt;</span> <span class="kw1">struct</span> in_in_out_result<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I, <span class="kw1">class</span> O1, <span class="kw1">class</span> O2<span class="sy1">&gt;</span> <span class="kw1">struct</span> in_out_out_result<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span> <span class="kw1">struct</span> min_max_result<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I<span class="sy1">&gt;</span> <span class="kw1">struct</span> in_found_result<span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#19981;&#20462;&#25913;&#24207;&#21015;&#30340;&#25805;&#20316;</span>
<span class="co1">// &#20840;&#37096;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter, <span class="kw1">class</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> all_of<span class="br0">(</span>InputIter first, InputIter last, Pred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">bool</span> all_of<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, ForwardIter last, Pred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_unary_predicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> all_of<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_range R, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_unary_predicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> all_of<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, Pred pred, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#20219;&#20309;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter, <span class="kw1">class</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> any_of<span class="br0">(</span>InputIter first, InputIter last, Pred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">bool</span> any_of<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, ForwardIter last, Pred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_unary_predicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> any_of<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_range R, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_unary_predicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> any_of<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, Pred pred, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#26080;&#19968;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter, <span class="kw1">class</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> none_of<span class="br0">(</span>InputIter first, InputIter last, Pred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">bool</span> none_of<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, ForwardIter last, Pred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_unary_predicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> none_of<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_range R, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_unary_predicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> none_of<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, Pred pred, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#23545;&#27599;&#20010;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter, <span class="kw1">class</span> Function<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> Function for_each<span class="br0">(</span>InputIter first, InputIter last, Function f<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Function<span class="sy1">&gt;</span>
<span class="kw4">void</span> for_each<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, ForwardIter last, Function f<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I, <span class="kw1">class</span> F<span class="sy1">&gt;</span>
<span class="kw1">using</span> for_each_result <span class="sy1">=</span> in_fun_result<span class="sy1">&lt;</span>I, F<span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirectly_unary_invocable<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Fun<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> for_each_result<span class="sy1">&lt;</span>I, Fun<span class="sy1">&gt;</span>
for_each<span class="br0">(</span>I first, S last, Fun f, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_range R, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirectly_unary_invocable<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Fun<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> for_each_result<span class="sy1">&lt;</span>borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Fun<span class="sy1">&gt;</span>
for_each<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, Fun f, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter, <span class="kw1">class</span> Size, <span class="kw1">class</span> Function<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> InputIter for_each_n<span class="br0">(</span>InputIter first, Size n, Function f<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Size, <span class="kw1">class</span> Function<span class="sy1">&gt;</span>
ForwardIter for_each_n<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, Size n, Function f<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I, <span class="kw1">class</span> F<span class="sy1">&gt;</span>
<span class="kw1">using</span> for_each_n_result <span class="sy1">=</span> in_fun_result<span class="sy1">&lt;</span>I, F<span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirectly_unary_invocable<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Fun<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> for_each_n_result<span class="sy1">&lt;</span>I, Fun<span class="sy1">&gt;</span>
for_each_n<span class="br0">(</span>I first, iter_difference_t<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> n, Fun f, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#23547;&#25214;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter, <span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> InputIter find<span class="br0">(</span>InputIter first, InputIter last,
<span class="kw4">const</span> T<span class="sy3">&amp;</span> value<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> T<span class="sy1">&gt;</span>
ForwardIter find<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, ForwardIter last,
<span class="kw4">const</span> T<span class="sy3">&amp;</span> value<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter, <span class="kw1">class</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> InputIter find_if<span class="br0">(</span>InputIter first, InputIter last,
Pred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Pred<span class="sy1">&gt;</span>
ForwardIter find_if<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, ForwardIter last,
Pred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter, <span class="kw1">class</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> InputIter find_if_not<span class="br0">(</span>InputIter first, InputIter last,
Pred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Pred<span class="sy1">&gt;</span>
ForwardIter find_if_not<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, ForwardIter last,
Pred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires indirect_binary_predicate<span class="sy1">&lt;</span>ranges<span class="sy4">::</span><span class="me2">equal_to</span>, projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;</span>, <span class="kw4">const</span> T<span class="sy2">*</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> I find<span class="br0">(</span>I first, S last, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_range R, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires indirect_binary_predicate<span class="sy1">&lt;</span>ranges<span class="sy4">::</span><span class="me2">equal_to</span>,
projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;</span>, <span class="kw4">const</span> T<span class="sy2">*</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>
find<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_unary_predicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> I find_if<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_range R, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_unary_predicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>
find_if<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, Pred pred, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_unary_predicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> I find_if_not<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_range R, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_unary_predicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>
find_if_not<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, Pred pred, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#23547;&#25214;&#26411;&#23614;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> ForwardIter1
find_end<span class="br0">(</span>ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2, ForwardIter2 last2<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2, <span class="kw1">class</span> BinaryPred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> ForwardIter1
find_end<span class="br0">(</span>ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2, ForwardIter2 last2,
BinaryPred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2<span class="sy1">&gt;</span>
ForwardIter1
find_end<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2, ForwardIter2 last2<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1,
<span class="kw1">class</span> ForwardIter2, <span class="kw1">class</span> BinaryPred<span class="sy1">&gt;</span>
ForwardIter1
find_end<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2, ForwardIter2 last2,
BinaryPred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>forward_iterator I1, sentinel_for<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, forward_iterator I2, sentinel_for<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
<span class="kw1">class</span> Pred <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">equal_to</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">&gt;</span>
requires indirectly_comparable<span class="sy1">&lt;</span>I1, I2, Pred, Proj1, Proj2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> subrange<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span>
find_end<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2, Pred pred <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>forward_range R1, forward_range R2,
<span class="kw1">class</span> Pred <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">equal_to</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">&gt;</span>
requires indirectly_comparable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R1<span class="sy1">&gt;</span>, iterator_t<span class="sy1">&lt;</span>R2<span class="sy1">&gt;</span>, Pred, Proj1, Proj2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> borrowed_subrange_t<span class="sy1">&lt;</span>R1<span class="sy1">&gt;</span>
find_end<span class="br0">(</span>R1<span class="sy3">&amp;&amp;</span> r1, R2<span class="sy3">&amp;&amp;</span> r2, Pred pred <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#23547;&#25214;&#39318;&#20010;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter, <span class="kw1">class</span> ForwardIter<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> InputIter
find_first_of<span class="br0">(</span>InputIter first1, InputIter last1,
ForwardIter first2, ForwardIter last2<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter, <span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> BinaryPred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> InputIter
find_first_of<span class="br0">(</span>InputIter first1, InputIter last1,
ForwardIter first2, ForwardIter last2,
BinaryPred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2<span class="sy1">&gt;</span>
ForwardIter1
find_first_of<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2, ForwardIter2 last2<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1,
<span class="kw1">class</span> ForwardIter2, <span class="kw1">class</span> BinaryPred<span class="sy1">&gt;</span>
ForwardIter1
find_first_of<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2, ForwardIter2 last2,
BinaryPred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I1, sentinel_for<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, forward_iterator I2, sentinel_for<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
<span class="kw1">class</span> Pred <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">equal_to</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">&gt;</span>
requires indirectly_comparable<span class="sy1">&lt;</span>I1, I2, Pred, Proj1, Proj2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> I1 find_first_of<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2, Pred pred <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_range R1, forward_range R2,
<span class="kw1">class</span> Pred <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">equal_to</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">&gt;</span>
requires indirectly_comparable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R1<span class="sy1">&gt;</span>, iterator_t<span class="sy1">&lt;</span>R2<span class="sy1">&gt;</span>, Pred, Proj1, Proj2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> borrowed_iterator_t<span class="sy1">&lt;</span>R1<span class="sy1">&gt;</span>
find_first_of<span class="br0">(</span>R1<span class="sy3">&amp;&amp;</span> r1, R2<span class="sy3">&amp;&amp;</span> r2, Pred pred <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#23547;&#25214;&#27607;&#37051;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> ForwardIter
adjacent_find<span class="br0">(</span>ForwardIter first, ForwardIter last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> BinaryPred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> ForwardIter
adjacent_find<span class="br0">(</span>ForwardIter first, ForwardIter last,
BinaryPred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter<span class="sy1">&gt;</span>
ForwardIter
adjacent_find<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, ForwardIter last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> BinaryPred<span class="sy1">&gt;</span>
ForwardIter
adjacent_find<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, ForwardIter last,
BinaryPred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>forward_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_binary_predicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;</span>,
projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">equal_to</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> I adjacent_find<span class="br0">(</span>I first, S last, Pred pred <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>,
Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>forward_range R, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_binary_predicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;</span>,
projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">equal_to</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>
adjacent_find<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, Pred pred <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#35745;&#25968;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter, <span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw1">typename</span> iterator_traits<span class="sy1">&lt;</span>InputIter<span class="sy1">&gt;</span><span class="sy4">::</span><span class="me2">difference_type</span>
count<span class="br0">(</span>InputIter first, InputIter last, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw1">typename</span> iterator_traits<span class="sy1">&lt;</span>ForwardIter<span class="sy1">&gt;</span><span class="sy4">::</span><span class="me2">difference_type</span>
count<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, ForwardIter last, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter, <span class="kw1">class</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw1">typename</span> iterator_traits<span class="sy1">&lt;</span>InputIter<span class="sy1">&gt;</span><span class="sy4">::</span><span class="me2">difference_type</span>
count_if<span class="br0">(</span>InputIter first, InputIter last, Pred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Pred<span class="sy1">&gt;</span>
<span class="kw1">typename</span> iterator_traits<span class="sy1">&lt;</span>ForwardIter<span class="sy1">&gt;</span><span class="sy4">::</span><span class="me2">difference_type</span>
count_if<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, ForwardIter last, Pred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires indirect_binary_predicate<span class="sy1">&lt;</span>ranges<span class="sy4">::</span><span class="me2">equal_to</span>, projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;</span>, <span class="kw4">const</span> T<span class="sy2">*</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> iter_difference_t<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span>
count<span class="br0">(</span>I first, S last, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_range R, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires indirect_binary_predicate<span class="sy1">&lt;</span>ranges<span class="sy4">::</span><span class="me2">equal_to</span>,
projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;</span>, <span class="kw4">const</span> T<span class="sy2">*</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> range_difference_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>
count<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_unary_predicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> iter_difference_t<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span>
count_if<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_range R, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_unary_predicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> range_difference_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>
count_if<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, Pred pred, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#19981;&#21305;&#37197;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter1, <span class="kw1">class</span> InputIter2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> pair<span class="sy1">&lt;</span>InputIter1, InputIter2<span class="sy1">&gt;</span>
mismatch<span class="br0">(</span>InputIter1 first1, InputIter1 last1,
InputIter2 first2<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter1, <span class="kw1">class</span> InputIter2, <span class="kw1">class</span> BinaryPred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> pair<span class="sy1">&lt;</span>InputIter1, InputIter2<span class="sy1">&gt;</span>
mismatch<span class="br0">(</span>InputIter1 first1, InputIter1 last1,
InputIter2 first2, BinaryPred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter1, <span class="kw1">class</span> InputIter2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> pair<span class="sy1">&lt;</span>InputIter1, InputIter2<span class="sy1">&gt;</span>
mismatch<span class="br0">(</span>InputIter1 first1, InputIter1 last1,
InputIter2 first2, InputIter2 last2<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter1, <span class="kw1">class</span> InputIter2, <span class="kw1">class</span> BinaryPred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> pair<span class="sy1">&lt;</span>InputIter1, InputIter2<span class="sy1">&gt;</span>
mismatch<span class="br0">(</span>InputIter1 first1, InputIter1 last1,
InputIter2 first2, InputIter2 last2,
BinaryPred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2<span class="sy1">&gt;</span>
pair<span class="sy1">&lt;</span>ForwardIter1, ForwardIter2<span class="sy1">&gt;</span>
mismatch<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2,
<span class="kw1">class</span> BinaryPred<span class="sy1">&gt;</span>
pair<span class="sy1">&lt;</span>ForwardIter1, ForwardIter2<span class="sy1">&gt;</span>
mismatch<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2, BinaryPred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2<span class="sy1">&gt;</span>
pair<span class="sy1">&lt;</span>ForwardIter1, ForwardIter2<span class="sy1">&gt;</span>
mismatch<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2, ForwardIter2 last2<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2,
<span class="kw1">class</span> BinaryPred<span class="sy1">&gt;</span>
pair<span class="sy1">&lt;</span>ForwardIter1, ForwardIter2<span class="sy1">&gt;</span>
mismatch<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2, ForwardIter2 last2,
BinaryPred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2<span class="sy1">&gt;</span>
<span class="kw1">using</span> mismatch_result <span class="sy1">=</span> in_in_result<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I1, sentinel_for<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, input_iterator I2, sentinel_for<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
<span class="kw1">class</span> Pred <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">equal_to</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">&gt;</span>
requires indirectly_comparable<span class="sy1">&lt;</span>I1, I2, Pred, Proj1, Proj2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> mismatch_result<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span>
mismatch<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2, Pred pred <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_range R1, input_range R2,
<span class="kw1">class</span> Pred <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">equal_to</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">&gt;</span>
requires indirectly_comparable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R1<span class="sy1">&gt;</span>, iterator_t<span class="sy1">&lt;</span>R2<span class="sy1">&gt;</span>, Pred, Proj1, Proj2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> mismatch_result<span class="sy1">&lt;</span>borrowed_iterator_t<span class="sy1">&lt;</span>R1<span class="sy1">&gt;</span>, borrowed_iterator_t<span class="sy1">&lt;</span>R2<span class="sy1">&gt;&gt;</span>
mismatch<span class="br0">(</span>R1<span class="sy3">&amp;&amp;</span> r1, R2<span class="sy3">&amp;&amp;</span> r2, Pred pred <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#30456;&#31561;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter1, <span class="kw1">class</span> InputIter2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> equal<span class="br0">(</span>InputIter1 first1, InputIter1 last1,
InputIter2 first2<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter1, <span class="kw1">class</span> InputIter2, <span class="kw1">class</span> BinaryPred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> equal<span class="br0">(</span>InputIter1 first1, InputIter1 last1,
InputIter2 first2, BinaryPred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter1, <span class="kw1">class</span> InputIter2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> equal<span class="br0">(</span>InputIter1 first1, InputIter1 last1,
InputIter2 first2, InputIter2 last2<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter1, <span class="kw1">class</span> InputIter2, <span class="kw1">class</span> BinaryPred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> equal<span class="br0">(</span>InputIter1 first1, InputIter1 last1,
InputIter2 first2, InputIter2 last2,
BinaryPred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2<span class="sy1">&gt;</span>
<span class="kw4">bool</span> equal<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2,
<span class="kw1">class</span> BinaryPred<span class="sy1">&gt;</span>
<span class="kw4">bool</span> equal<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2, BinaryPred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2<span class="sy1">&gt;</span>
<span class="kw4">bool</span> equal<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2, ForwardIter2 last2<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2,
<span class="kw1">class</span> BinaryPred<span class="sy1">&gt;</span>
<span class="kw4">bool</span> equal<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2, ForwardIter2 last2,
BinaryPred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I1, sentinel_for<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, input_iterator I2, sentinel_for<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
<span class="kw1">class</span> Pred <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">equal_to</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">&gt;</span>
requires indirectly_comparable<span class="sy1">&lt;</span>I1, I2, Pred, Proj1, Proj2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</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> <span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_range R1, input_range R2, <span class="kw1">class</span> Pred <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">equal_to</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">&gt;</span>
requires indirectly_comparable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R1<span class="sy1">&gt;</span>, iterator_t<span class="sy1">&lt;</span>R2<span class="sy1">&gt;</span>, Pred, Proj1, Proj2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> equal<span class="br0">(</span>R1<span class="sy3">&amp;&amp;</span> r1, R2<span class="sy3">&amp;&amp;</span> r2, Pred pred <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#20026;&#25490;&#21015;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> is_permutation<span class="br0">(</span>ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2, <span class="kw1">class</span> BinaryPred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> is_permutation<span class="br0">(</span>ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2, BinaryPred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> is_permutation<span class="br0">(</span>ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2, ForwardIter2 last2<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2, <span class="kw1">class</span> BinaryPred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> is_permutation<span class="br0">(</span>ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2, ForwardIter2 last2,
BinaryPred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>forward_iterator I1, sentinel_for<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, forward_iterator I2,
sentinel_for<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity,
indirect_equivalence_relation<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I1, Proj1<span class="sy1">&gt;</span>,
projected<span class="sy1">&lt;</span>I2, Proj2<span class="sy1">&gt;&gt;</span> Pred <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">equal_to</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</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> <span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>forward_range R1, forward_range R2,
<span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity,
indirect_equivalence_relation<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R1<span class="sy1">&gt;</span>, Proj1<span class="sy1">&gt;</span>,
projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R2<span class="sy1">&gt;</span>, Proj2<span class="sy1">&gt;&gt;</span>
Pred <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">equal_to</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> is_permutation<span class="br0">(</span>R1<span class="sy3">&amp;&amp;</span> r1, R2<span class="sy3">&amp;&amp;</span> r2, Pred pred <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#25628;&#32034;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> ForwardIter1
search<span class="br0">(</span>ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2, ForwardIter2 last2<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2, <span class="kw1">class</span> BinaryPred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> ForwardIter1
search<span class="br0">(</span>ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2, ForwardIter2 last2,
BinaryPred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2<span class="sy1">&gt;</span>
ForwardIter1
search<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2, ForwardIter2 last2<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2,
<span class="kw1">class</span> BinaryPred<span class="sy1">&gt;</span>
ForwardIter1
search<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2, ForwardIter2 last2,
BinaryPred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>forward_iterator I1, sentinel_for<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, forward_iterator I2,
sentinel_for<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2, <span class="kw1">class</span> Pred <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">equal_to</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">&gt;</span>
requires indirectly_comparable<span class="sy1">&lt;</span>I1, I2, Pred, Proj1, Proj2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> subrange<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span>
search<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2, Pred pred <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>forward_range R1, forward_range R2, <span class="kw1">class</span> Pred <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">equal_to</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">&gt;</span>
requires indirectly_comparable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R1<span class="sy1">&gt;</span>, iterator_t<span class="sy1">&lt;</span>R2<span class="sy1">&gt;</span>, Pred, Proj1, Proj2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> borrowed_subrange_t<span class="sy1">&lt;</span>R1<span class="sy1">&gt;</span>
search<span class="br0">(</span>R1<span class="sy3">&amp;&amp;</span> r1, R2<span class="sy3">&amp;&amp;</span> r2, Pred pred <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Size, <span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> ForwardIter
search_n<span class="br0">(</span>ForwardIter first, ForwardIter last,
Size count, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Size, <span class="kw1">class</span> T, <span class="kw1">class</span> BinaryPred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> ForwardIter
search_n<span class="br0">(</span>ForwardIter first, ForwardIter last,
Size count, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, BinaryPred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Size, <span class="kw1">class</span> T<span class="sy1">&gt;</span>
ForwardIter
search_n<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, ForwardIter last,
Size count, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Size, <span class="kw1">class</span> T,
<span class="kw1">class</span> BinaryPred<span class="sy1">&gt;</span>
ForwardIter
search_n<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, ForwardIter last,
Size count, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value,
BinaryPred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>forward_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> T,
<span class="kw1">class</span> Pred <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">equal_to</span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires indirectly_comparable<span class="sy1">&lt;</span>I, <span class="kw4">const</span> T<span class="sy2">*</span>, Pred, Proj<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> subrange<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span>
search_n<span class="br0">(</span>I first, S last, iter_difference_t<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> count,
<span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Pred pred <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>forward_range R, <span class="kw1">class</span> T, <span class="kw1">class</span> Pred <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">equal_to</span>,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires indirectly_comparable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, <span class="kw4">const</span> T<span class="sy2">*</span>, Pred, Proj<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> borrowed_subrange_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>
search_n<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, range_difference_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span> count,
<span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Pred pred <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Searcher<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> ForwardIter
search<span class="br0">(</span>ForwardIter first, ForwardIter last, <span class="kw4">const</span> Searcher<span class="sy3">&amp;</span> searcher<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="co1">// &#22987;&#20110;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I1, sentinel_for<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, input_iterator I2, sentinel_for<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
<span class="kw1">class</span> Pred <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">equal_to</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">&gt;</span>
requires indirectly_comparable<span class="sy1">&lt;</span>I1, I2, Pred, Proj1, Proj2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> starts_with<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2, Pred pred <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_range R1, input_range R2, <span class="kw1">class</span> Pred <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">equal_to</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">&gt;</span>
requires indirectly_comparable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R1<span class="sy1">&gt;</span>, iterator_t<span class="sy1">&lt;</span>R2<span class="sy1">&gt;</span>, Pred, Proj1, Proj2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> starts_with<span class="br0">(</span>R1<span class="sy3">&amp;&amp;</span> r1, R2<span class="sy3">&amp;&amp;</span> r2, Pred pred <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="co1">// &#32456;&#20110;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I1, sentinel_for<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, input_iterator I2, sentinel_for<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
<span class="kw1">class</span> Pred <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">equal_to</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">&gt;</span>
requires <span class="br0">(</span>forward_iterator<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> <span class="sy3">||</span> sized_sentinel_for<span class="sy1">&lt;</span>S1, I1<span class="sy1">&gt;</span><span class="br0">)</span> <span class="sy3">&amp;&amp;</span>
<span class="br0">(</span>forward_iterator<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> <span class="sy3">||</span> sized_sentinel_for<span class="sy1">&lt;</span>S2, I2<span class="sy1">&gt;</span><span class="br0">)</span> <span class="sy3">&amp;&amp;</span>
indirectly_comparable<span class="sy1">&lt;</span>I1, I2, Pred, Proj1, Proj2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> ends_with<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2, Pred pred <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_range R1, input_range R2, <span class="kw1">class</span> Pred <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">equal_to</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">&gt;</span>
requires <span class="br0">(</span>forward_range<span class="sy1">&lt;</span>R1<span class="sy1">&gt;</span> <span class="sy3">||</span> sized_range<span class="sy1">&lt;</span>R1<span class="sy1">&gt;</span><span class="br0">)</span> <span class="sy3">&amp;&amp;</span>
<span class="br0">(</span>forward_range<span class="sy1">&lt;</span>R2<span class="sy1">&gt;</span> <span class="sy3">||</span> sized_range<span class="sy1">&lt;</span>R2<span class="sy1">&gt;</span><span class="br0">)</span> <span class="sy3">&amp;&amp;</span>
indirectly_comparable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R1<span class="sy1">&gt;</span>, iterator_t<span class="sy1">&lt;</span>R2<span class="sy1">&gt;</span>, Pred, Proj1, Proj2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> ends_with<span class="br0">(</span>R1<span class="sy3">&amp;&amp;</span> r1, R2<span class="sy3">&amp;&amp;</span> r2, Pred pred <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#20462;&#25913;&#24207;&#21015;&#30340;&#25805;&#20316;</span>
<span class="co1">// &#22797;&#21046;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter, <span class="kw1">class</span> OutputIter<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> OutputIter copy<span class="br0">(</span>InputIter first, InputIter last,
OutputIter result<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2<span class="sy1">&gt;</span>
ForwardIter2 copy<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first, ForwardIter1 last,
ForwardIter2 result<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I, <span class="kw1">class</span> O<span class="sy1">&gt;</span>
<span class="kw1">using</span> copy_result <span class="sy1">=</span> in_out_result<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, weakly_incrementable O<span class="sy1">&gt;</span>
requires indirectly_copyable<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> copy_result<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</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">&lt;</span>input_range R, weakly_incrementable O<span class="sy1">&gt;</span>
requires indirectly_copyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> copy_result<span class="sy1">&lt;</span>borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span>
copy<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, O result<span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter, <span class="kw1">class</span> Size, <span class="kw1">class</span> OutputIter<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> OutputIter copy_n<span class="br0">(</span>InputIter first, Size n,
OutputIter result<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> Size,
<span class="kw1">class</span> ForwardIter2<span class="sy1">&gt;</span>
ForwardIter2 copy_n<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first, Size n,
ForwardIter2 result<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I, <span class="kw1">class</span> O<span class="sy1">&gt;</span>
<span class="kw1">using</span> copy_n_result <span class="sy1">=</span> in_out_result<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I, weakly_incrementable O<span class="sy1">&gt;</span>
requires indirectly_copyable<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> copy_n_result<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span>
copy_n<span class="br0">(</span>I first, iter_difference_t<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> n, O result<span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter, <span class="kw1">class</span> OutputIter, <span class="kw1">class</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> OutputIter copy_if<span class="br0">(</span>InputIter first, InputIter last,
OutputIter result, Pred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2,
<span class="kw1">class</span> Pred<span class="sy1">&gt;</span>
ForwardIter2 copy_if<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first, ForwardIter1 last,
ForwardIter2 result, Pred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I, <span class="kw1">class</span> O<span class="sy1">&gt;</span>
<span class="kw1">using</span> copy_if_result <span class="sy1">=</span> in_out_result<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, weakly_incrementable O, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_unary_predicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
requires indirectly_copyable<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> copy_if_result<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span>
copy_if<span class="br0">(</span>I first, S last, O result, Pred pred, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_range R, weakly_incrementable O, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_unary_predicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
requires indirectly_copyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> copy_if_result<span class="sy1">&lt;</span>borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span>
copy_if<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, O result, Pred pred, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> BidirectionalIter1, <span class="kw1">class</span> BidirectionalIter2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> BidirectionalIter2
copy_backward<span class="br0">(</span>BidirectionalIter1 first, BidirectionalIter1 last,
BidirectionalIter2 result<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2<span class="sy1">&gt;</span>
<span class="kw1">using</span> copy_backward_result <span class="sy1">=</span> in_out_result<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>bidirectional_iterator I1, sentinel_for<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, bidirectional_iterator I2<span class="sy1">&gt;</span>
requires indirectly_copyable<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> copy_backward_result<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</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">&lt;</span>bidirectional_range R, bidirectional_iterator I<span class="sy1">&gt;</span>
requires indirectly_copyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, I<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> copy_backward_result<span class="sy1">&lt;</span>borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, I<span class="sy1">&gt;</span>
copy_backward<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, I result<span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#31227;&#21160;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter, <span class="kw1">class</span> OutputIter<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> OutputIter move<span class="br0">(</span>InputIter first, InputIter last,
OutputIter result<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1,
<span class="kw1">class</span> ForwardIter2<span class="sy1">&gt;</span>
ForwardIter2 move<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first, ForwardIter1 last,
ForwardIter2 result<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I, <span class="kw1">class</span> O<span class="sy1">&gt;</span>
<span class="kw1">using</span> move_result <span class="sy1">=</span> in_out_result<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, weakly_incrementable O<span class="sy1">&gt;</span>
requires indirectly_movable<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> move_result<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</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">&lt;</span>input_range R, weakly_incrementable O<span class="sy1">&gt;</span>
requires indirectly_movable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> move_result<span class="sy1">&lt;</span>borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span>
move<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, O result<span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> BidirectionalIter1, <span class="kw1">class</span> BidirectionalIter2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> BidirectionalIter2
move_backward<span class="br0">(</span>BidirectionalIter1 first, BidirectionalIter1 last,
BidirectionalIter2 result<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2<span class="sy1">&gt;</span>
<span class="kw1">using</span> move_backward_result <span class="sy1">=</span> in_out_result<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>bidirectional_iterator I1, sentinel_for<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, bidirectional_iterator I2<span class="sy1">&gt;</span>
requires indirectly_movable<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> move_backward_result<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</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">&lt;</span>bidirectional_range R, bidirectional_iterator I<span class="sy1">&gt;</span>
requires indirectly_movable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, I<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> move_backward_result<span class="sy1">&lt;</span>borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, I<span class="sy1">&gt;</span>
move_backward<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, I result<span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#20132;&#25442;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> ForwardIter2 swap_ranges<span class="br0">(</span>ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2<span class="sy1">&gt;</span>
ForwardIter2 swap_ranges<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2<span class="sy1">&gt;</span>
<span class="kw1">using</span> swap_ranges_result <span class="sy1">=</span> in_in_result<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I1, sentinel_for<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, input_iterator I2, sentinel_for<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2<span class="sy1">&gt;</span>
requires indirectly_swappable<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> swap_ranges_result<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</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">&lt;</span>input_range R1, input_range R2<span class="sy1">&gt;</span>
requires indirectly_swappable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R1<span class="sy1">&gt;</span>, iterator_t<span class="sy1">&lt;</span>R2<span class="sy1">&gt;&gt;</span>
<span class="kw4">constexpr</span> swap_ranges_result<span class="sy1">&lt;</span>borrowed_iterator_t<span class="sy1">&lt;</span>R1<span class="sy1">&gt;</span>, borrowed_iterator_t<span class="sy1">&lt;</span>R2<span class="sy1">&gt;&gt;</span>
swap_ranges<span class="br0">(</span>R1<span class="sy3">&amp;&amp;</span> r1, R2<span class="sy3">&amp;&amp;</span> r2<span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">void</span> iter_swap<span class="br0">(</span>ForwardIter1 a, ForwardIter2 b<span class="br0">)</span><span class="sy4">;</span>
<span class="co1">// &#21464;&#25442;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter, <span class="kw1">class</span> OutputIter, <span class="kw1">class</span> UnaryOperation<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> OutputIter
transform<span class="br0">(</span>InputIter first1, InputIter last1,
OutputIter result, UnaryOperation op<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter1, <span class="kw1">class</span> InputIter2, <span class="kw1">class</span> OutputIter,
<span class="kw1">class</span> BinaryOperation<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> OutputIter
transform<span class="br0">(</span>InputIter1 first1, InputIter1 last1,
InputIter2 first2, OutputIter result,
BinaryOperation binary_op<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2,
<span class="kw1">class</span> UnaryOperation<span class="sy1">&gt;</span>
ForwardIter2
transform<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 result, UnaryOperation op<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2,
<span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> BinaryOperation<span class="sy1">&gt;</span>
ForwardIter
transform<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2, ForwardIter result,
BinaryOperation binary_op<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I, <span class="kw1">class</span> O<span class="sy1">&gt;</span>
<span class="kw1">using</span> unary_transform_result <span class="sy1">=</span> in_out_result<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, weakly_incrementable O,
copy_constructible F, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires indirectly_writable<span class="sy1">&lt;</span>O, indirect_result_t<span class="sy1">&lt;</span>F<span class="sy3">&amp;</span>, projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;&gt;</span>
<span class="kw4">constexpr</span> unary_transform_result<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span>
transform<span class="br0">(</span>I first1, S last1, O result, F op, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_range R, weakly_incrementable O, copy_constructible F,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires indirectly_writable<span class="sy1">&lt;</span>O, indirect_result_t<span class="sy1">&lt;</span>F<span class="sy3">&amp;</span>, projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;&gt;</span>
<span class="kw4">constexpr</span> unary_transform_result<span class="sy1">&lt;</span>borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span>
transform<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, O result, F op, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2, <span class="kw1">class</span> O<span class="sy1">&gt;</span>
<span class="kw1">using</span> binary_transform_result <span class="sy1">=</span> in_in_out_result<span class="sy1">&lt;</span>I1, I2, O<span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I1, sentinel_for<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, input_iterator I2, sentinel_for<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
weakly_incrementable O, copy_constructible 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">&gt;</span>
requires indirectly_writable<span class="sy1">&lt;</span>O, indirect_result_t<span class="sy1">&lt;</span>F<span class="sy3">&amp;</span>, projected<span class="sy1">&lt;</span>I1, Proj1<span class="sy1">&gt;</span>,
projected<span class="sy1">&lt;</span>I2, Proj2<span class="sy1">&gt;&gt;&gt;</span>
<span class="kw4">constexpr</span> binary_transform_result<span class="sy1">&lt;</span>I1, I2, O<span class="sy1">&gt;</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> <span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_range R1, input_range R2, weakly_incrementable O,
copy_constructible 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">&gt;</span>
requires indirectly_writable<span class="sy1">&lt;</span>O, indirect_result_t<span class="sy1">&lt;</span>F<span class="sy3">&amp;</span>, projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R1<span class="sy1">&gt;</span>, Proj1<span class="sy1">&gt;</span>,
projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R2<span class="sy1">&gt;</span>, Proj2<span class="sy1">&gt;&gt;&gt;</span>
<span class="kw4">constexpr</span> binary_transform_result<span class="sy1">&lt;</span>borrowed_iterator_t<span class="sy1">&lt;</span>R1<span class="sy1">&gt;</span>, borrowed_iterator_t<span class="sy1">&lt;</span>R2<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span>
transform<span class="br0">(</span>R1<span class="sy3">&amp;&amp;</span> r1, R2<span class="sy3">&amp;&amp;</span> r2, O result,
F binary_op, Proj1 proj1 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#26367;&#25442;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">void</span> replace<span class="br0">(</span>ForwardIter first, ForwardIter last,
<span class="kw4">const</span> T<span class="sy3">&amp;</span> old_value, <span class="kw4">const</span> T<span class="sy3">&amp;</span> new_value<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw4">void</span> replace<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, ForwardIter last,
<span class="kw4">const</span> T<span class="sy3">&amp;</span> old_value, <span class="kw4">const</span> T<span class="sy3">&amp;</span> new_value<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Pred, <span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">void</span> replace_if<span class="br0">(</span>ForwardIter first, ForwardIter last,
Pred pred, <span class="kw4">const</span> T<span class="sy3">&amp;</span> new_value<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Pred, <span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw4">void</span> replace_if<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, ForwardIter last,
Pred pred, <span class="kw4">const</span> T<span class="sy3">&amp;</span> new_value<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</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">&gt;</span>
requires indirectly_writable<span class="sy1">&lt;</span>I, <span class="kw4">const</span> T2<span class="sy3">&amp;</span><span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
indirect_binary_predicate<span class="sy1">&lt;</span>ranges<span class="sy4">::</span><span class="me2">equal_to</span>, projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;</span>, <span class="kw4">const</span> T1<span class="sy2">*</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> I
replace<span class="br0">(</span>I first, S last, <span class="kw4">const</span> T1<span class="sy3">&amp;</span> old_value, <span class="kw4">const</span> T2<span class="sy3">&amp;</span> new_value, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_range R, <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">&gt;</span>
requires indirectly_writable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, <span class="kw4">const</span> T2<span class="sy3">&amp;</span><span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
indirect_binary_predicate<span class="sy1">&lt;</span>ranges<span class="sy4">::</span><span class="me2">equal_to</span>,
projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;</span>, <span class="kw4">const</span> T1<span class="sy2">*</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>
replace<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, <span class="kw4">const</span> T1<span class="sy3">&amp;</span> old_value, <span class="kw4">const</span> T2<span class="sy3">&amp;</span> new_value, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_unary_predicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
requires indirectly_writable<span class="sy1">&lt;</span>I, <span class="kw4">const</span> T<span class="sy3">&amp;</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> I replace_if<span class="br0">(</span>I first, S last, Pred pred, <span class="kw4">const</span> T<span class="sy3">&amp;</span> new_value, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_range R, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_unary_predicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
requires indirectly_writable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, <span class="kw4">const</span> T<span class="sy3">&amp;</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>
replace_if<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, Pred pred, <span class="kw4">const</span> T<span class="sy3">&amp;</span> new_value, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter, <span class="kw1">class</span> OutputIter, <span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> OutputIter replace_copy<span class="br0">(</span>InputIter first, InputIter last,
OutputIter result,
<span class="kw4">const</span> T<span class="sy3">&amp;</span> old_value, <span class="kw4">const</span> T<span class="sy3">&amp;</span> new_value<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2, <span class="kw1">class</span> T<span class="sy1">&gt;</span>
ForwardIter2 replace_copy<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first, ForwardIter1 last,
ForwardIter2 result,
<span class="kw4">const</span> T<span class="sy3">&amp;</span> old_value, <span class="kw4">const</span> T<span class="sy3">&amp;</span> new_value<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter, <span class="kw1">class</span> OutputIter, <span class="kw1">class</span> Pred, <span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> OutputIter replace_copy_if<span class="br0">(</span>InputIter first, InputIter last,
OutputIter result,
Pred pred, <span class="kw4">const</span> T<span class="sy3">&amp;</span> new_value<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2,
<span class="kw1">class</span> Pred, <span class="kw1">class</span> T<span class="sy1">&gt;</span>
ForwardIter2 replace_copy_if<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first, ForwardIter1 last,
ForwardIter2 result,
Pred pred, <span class="kw4">const</span> T<span class="sy3">&amp;</span> new_value<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I, <span class="kw1">class</span> O<span class="sy1">&gt;</span>
<span class="kw1">using</span> replace_copy_result <span class="sy1">=</span> in_out_result<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> T1, <span class="kw1">class</span> T2,
output_iterator<span class="sy1">&lt;</span><span class="kw4">const</span> T2<span class="sy3">&amp;</span><span class="sy1">&gt;</span> O, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires indirectly_copyable<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
indirect_binary_predicate<span class="sy1">&lt;</span>ranges<span class="sy4">::</span><span class="me2">equal_to</span>, projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;</span>, <span class="kw4">const</span> T1<span class="sy2">*</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> replace_copy_result<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span>
replace_copy<span class="br0">(</span>I first, S last, O result, <span class="kw4">const</span> T1<span class="sy3">&amp;</span> old_value, <span class="kw4">const</span> T2<span class="sy3">&amp;</span> new_value,
Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_range R, <span class="kw1">class</span> T1, <span class="kw1">class</span> T2, output_iterator<span class="sy1">&lt;</span><span class="kw4">const</span> T2<span class="sy3">&amp;</span><span class="sy1">&gt;</span> O,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires indirectly_copyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
indirect_binary_predicate<span class="sy1">&lt;</span>ranges<span class="sy4">::</span><span class="me2">equal_to</span>,
projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;</span>, <span class="kw4">const</span> T1<span class="sy2">*</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> replace_copy_result<span class="sy1">&lt;</span>borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span>
replace_copy<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, O result, <span class="kw4">const</span> T1<span class="sy3">&amp;</span> old_value, <span class="kw4">const</span> T2<span class="sy3">&amp;</span> new_value,
Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I, <span class="kw1">class</span> O<span class="sy1">&gt;</span>
<span class="kw1">using</span> replace_copy_if_result <span class="sy1">=</span> in_out_result<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> T, output_iterator<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy3">&amp;</span><span class="sy1">&gt;</span> O,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity, indirect_unary_predicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
requires indirectly_copyable<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> replace_copy_if_result<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</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">&amp;</span> new_value,
Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_range R, <span class="kw1">class</span> T, output_iterator<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy3">&amp;</span><span class="sy1">&gt;</span> O, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_unary_predicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
requires indirectly_copyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> replace_copy_if_result<span class="sy1">&lt;</span>borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span>
replace_copy_if<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, O result, Pred pred, <span class="kw4">const</span> T<span class="sy3">&amp;</span> new_value,
Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#22635;&#20805;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">void</span> fill<span class="br0">(</span>ForwardIter first, ForwardIter last, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw4">void</span> fill<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, ForwardIter last, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> OutputIter, <span class="kw1">class</span> Size, <span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> OutputIter fill_n<span class="br0">(</span>OutputIter first, Size n, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter,
<span class="kw1">class</span> Size, <span class="kw1">class</span> T<span class="sy1">&gt;</span>
ForwardIter fill_n<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, Size n, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T, output_iterator<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy3">&amp;</span><span class="sy1">&gt;</span> O, sentinel_for<span class="sy1">&lt;</span>O<span class="sy1">&gt;</span> S<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> O fill<span class="br0">(</span>O first, S last, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T, output_range<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy3">&amp;</span><span class="sy1">&gt;</span> R<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span> fill<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T, output_iterator<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy3">&amp;</span><span class="sy1">&gt;</span> O<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> O fill_n<span class="br0">(</span>O first, iter_difference_t<span class="sy1">&lt;</span>O<span class="sy1">&gt;</span> n, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value<span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#29983;&#25104;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Generator<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">void</span> generate<span class="br0">(</span>ForwardIter first, ForwardIter last,
Generator gen<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Generator<span class="sy1">&gt;</span>
<span class="kw4">void</span> generate<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, ForwardIter last,
Generator gen<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> OutputIter, <span class="kw1">class</span> Size, <span class="kw1">class</span> Generator<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> OutputIter generate_n<span class="br0">(</span>OutputIter first, Size n, Generator gen<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Size, <span class="kw1">class</span> Generator<span class="sy1">&gt;</span>
ForwardIter generate_n<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, Size n, Generator gen<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_or_output_iterator O, sentinel_for<span class="sy1">&lt;</span>O<span class="sy1">&gt;</span> S, copy_constructible F<span class="sy1">&gt;</span>
requires invocable<span class="sy1">&lt;</span>F<span class="sy3">&amp;</span><span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span> indirectly_writable<span class="sy1">&lt;</span>O, invoke_result_t<span class="sy1">&lt;</span>F<span class="sy3">&amp;</span><span class="sy1">&gt;&gt;</span>
<span class="kw4">constexpr</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">&lt;</span><span class="kw1">class</span> R, copy_constructible F<span class="sy1">&gt;</span>
requires invocable<span class="sy1">&lt;</span>F<span class="sy3">&amp;</span><span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span> output_range<span class="sy1">&lt;</span>R, invoke_result_t<span class="sy1">&lt;</span>F<span class="sy3">&amp;</span><span class="sy1">&gt;&gt;</span>
<span class="kw4">constexpr</span> borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span> generate<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, F gen<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_or_output_iterator O, copy_constructible F<span class="sy1">&gt;</span>
requires invocable<span class="sy1">&lt;</span>F<span class="sy3">&amp;</span><span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span> indirectly_writable<span class="sy1">&lt;</span>O, invoke_result_t<span class="sy1">&lt;</span>F<span class="sy3">&amp;</span><span class="sy1">&gt;&gt;</span>
<span class="kw4">constexpr</span> O generate_n<span class="br0">(</span>O first, iter_difference_t<span class="sy1">&lt;</span>O<span class="sy1">&gt;</span> n, F gen<span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#31227;&#38500;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> ForwardIter remove<span class="br0">(</span>ForwardIter first, ForwardIter last,
<span class="kw4">const</span> T<span class="sy3">&amp;</span> value<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> T<span class="sy1">&gt;</span>
ForwardIter remove<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, ForwardIter last,
<span class="kw4">const</span> T<span class="sy3">&amp;</span> value<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> ForwardIter remove_if<span class="br0">(</span>ForwardIter first, ForwardIter last,
Pred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Pred<span class="sy1">&gt;</span>
ForwardIter remove_if<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, ForwardIter last,
Pred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>permutable I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires indirect_binary_predicate<span class="sy1">&lt;</span>ranges<span class="sy4">::</span><span class="me2">equal_to</span>, projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;</span>, <span class="kw4">const</span> T<span class="sy2">*</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> subrange<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> remove<span class="br0">(</span>I first, S last, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>forward_range R, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires permutable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;&gt;</span> <span class="sy3">&amp;&amp;</span>
indirect_binary_predicate<span class="sy1">&lt;</span>ranges<span class="sy4">::</span><span class="me2">equal_to</span>,
projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;</span>, <span class="kw4">const</span> T<span class="sy2">*</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> borrowed_subrange_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>
remove<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>permutable I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_unary_predicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> subrange<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> remove_if<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>forward_range R, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_unary_predicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
requires permutable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;&gt;</span>
<span class="kw4">constexpr</span> borrowed_subrange_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>
remove_if<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, Pred pred, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter, <span class="kw1">class</span> OutputIter, <span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> OutputIter
remove_copy<span class="br0">(</span>InputIter first, InputIter last,
OutputIter result, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2,
<span class="kw1">class</span> T<span class="sy1">&gt;</span>
ForwardIter2
remove_copy<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first, ForwardIter1 last,
ForwardIter2 result, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter, <span class="kw1">class</span> OutputIter, <span class="kw1">class</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> OutputIter
remove_copy_if<span class="br0">(</span>InputIter first, InputIter last,
OutputIter result, Pred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2,
<span class="kw1">class</span> Pred<span class="sy1">&gt;</span>
ForwardIter2
remove_copy_if<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first, ForwardIter1 last,
ForwardIter2 result, Pred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I, <span class="kw1">class</span> O<span class="sy1">&gt;</span>
<span class="kw1">using</span> remove_copy_result <span class="sy1">=</span> in_out_result<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, weakly_incrementable O, <span class="kw1">class</span> T,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires indirectly_copyable<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
indirect_binary_predicate<span class="sy1">&lt;</span>ranges<span class="sy4">::</span><span class="me2">equal_to</span>, projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;</span>, <span class="kw4">const</span> T<span class="sy2">*</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> remove_copy_result<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span>
remove_copy<span class="br0">(</span>I first, S last, O result, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_range R, weakly_incrementable O, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires indirectly_copyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
indirect_binary_predicate<span class="sy1">&lt;</span>ranges<span class="sy4">::</span><span class="me2">equal_to</span>,
projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;</span>, <span class="kw4">const</span> T<span class="sy2">*</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> remove_copy_result<span class="sy1">&lt;</span>borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span>
remove_copy<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, O result, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I, <span class="kw1">class</span> O<span class="sy1">&gt;</span>
<span class="kw1">using</span> remove_copy_if_result <span class="sy1">=</span> in_out_result<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, weakly_incrementable O,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity, indirect_unary_predicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
requires indirectly_copyable<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> remove_copy_if_result<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span>
remove_copy_if<span class="br0">(</span>I first, S last, O result, Pred pred, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_range R, weakly_incrementable O, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_unary_predicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
requires indirectly_copyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> remove_copy_if_result<span class="sy1">&lt;</span>borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span>
remove_copy_if<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, O result, Pred pred, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#24402;&#19968;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> ForwardIter unique<span class="br0">(</span>ForwardIter first, ForwardIter last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> BinaryPred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> ForwardIter unique<span class="br0">(</span>ForwardIter first, ForwardIter last,
BinaryPred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter<span class="sy1">&gt;</span>
ForwardIter unique<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, ForwardIter last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> BinaryPred<span class="sy1">&gt;</span>
ForwardIter unique<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, ForwardIter last,
BinaryPred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>permutable I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_equivalence_relation<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> C <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">equal_to</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> subrange<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> unique<span class="br0">(</span>I first, S last, C comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>forward_range R, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_equivalence_relation<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> C <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">equal_to</span><span class="sy1">&gt;</span>
requires permutable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;&gt;</span>
<span class="kw4">constexpr</span> borrowed_subrange_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>
unique<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, C comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter, <span class="kw1">class</span> OutputIter<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> OutputIter
unique_copy<span class="br0">(</span>InputIter first, InputIter last,
OutputIter result<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter, <span class="kw1">class</span> OutputIter, <span class="kw1">class</span> BinaryPred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> OutputIter
unique_copy<span class="br0">(</span>InputIter first, InputIter last,
OutputIter result, BinaryPred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2<span class="sy1">&gt;</span>
ForwardIter2
unique_copy<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first, ForwardIter1 last,
ForwardIter2 result<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2,
<span class="kw1">class</span> BinaryPred<span class="sy1">&gt;</span>
ForwardIter2
unique_copy<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first, ForwardIter1 last,
ForwardIter2 result, BinaryPred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I, <span class="kw1">class</span> O<span class="sy1">&gt;</span>
<span class="kw1">using</span> unique_copy_result <span class="sy1">=</span> in_out_result<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, weakly_incrementable O, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_equivalence_relation<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> C <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">equal_to</span><span class="sy1">&gt;</span>
requires indirectly_copyable<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
<span class="br0">(</span>forward_iterator<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> <span class="sy3">||</span>
<span class="br0">(</span>input_iterator<span class="sy1">&lt;</span>O<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span> same_as<span class="sy1">&lt;</span>iter_value_t<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span>, iter_value_t<span class="sy1">&lt;</span>O<span class="sy1">&gt;&gt;</span><span class="br0">)</span> <span class="sy3">||</span>
indirectly_copyable_storable<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span><span class="br0">)</span>
<span class="kw4">constexpr</span> unique_copy_result<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span>
unique_copy<span class="br0">(</span>I first, S last, O result, C comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_range R, weakly_incrementable O, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_equivalence_relation<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> C <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">equal_to</span><span class="sy1">&gt;</span>
requires indirectly_copyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
<span class="br0">(</span>forward_iterator<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;&gt;</span> <span class="sy3">||</span>
<span class="br0">(</span>input_iterator<span class="sy1">&lt;</span>O<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span> same_as<span class="sy1">&lt;</span>range_value_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, iter_value_t<span class="sy1">&lt;</span>O<span class="sy1">&gt;&gt;</span><span class="br0">)</span> <span class="sy3">||</span>
indirectly_copyable_storable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span><span class="br0">)</span>
<span class="kw4">constexpr</span> unique_copy_result<span class="sy1">&lt;</span>borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span>
unique_copy<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, O result, C comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#36870;&#36716;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> BidirectionalIter<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">void</span> reverse<span class="br0">(</span>BidirectionalIter first, BidirectionalIter last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> BidirectionalIter<span class="sy1">&gt;</span>
<span class="kw4">void</span> reverse<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
BidirectionalIter first, BidirectionalIter last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>bidirectional_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S<span class="sy1">&gt;</span>
requires permutable<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span>
<span class="kw4">constexpr</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">&lt;</span>bidirectional_range R<span class="sy1">&gt;</span>
requires permutable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;&gt;</span>
<span class="kw4">constexpr</span> borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span> reverse<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r<span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> BidirectionalIter, <span class="kw1">class</span> OutputIter<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> OutputIter
reverse_copy<span class="br0">(</span>BidirectionalIter first, BidirectionalIter last,
OutputIter result<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> BidirectionalIter, <span class="kw1">class</span> ForwardIter<span class="sy1">&gt;</span>
ForwardIter
reverse_copy<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
BidirectionalIter first, BidirectionalIter last,
ForwardIter result<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I, <span class="kw1">class</span> O<span class="sy1">&gt;</span>
<span class="kw1">using</span> reverse_copy_result <span class="sy1">=</span> in_out_result<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>bidirectional_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, weakly_incrementable O<span class="sy1">&gt;</span>
requires indirectly_copyable<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> reverse_copy_result<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</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">&lt;</span>bidirectional_range R, weakly_incrementable O<span class="sy1">&gt;</span>
requires indirectly_copyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> reverse_copy_result<span class="sy1">&lt;</span>borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span>
reverse_copy<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, O result<span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#26059;&#36716;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> ForwardIter rotate<span class="br0">(</span>ForwardIter first,
ForwardIter middle,
ForwardIter last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter<span class="sy1">&gt;</span>
ForwardIter rotate<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first,
ForwardIter middle,
ForwardIter last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>permutable I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> subrange<span class="sy1">&lt;</span>I<span class="sy1">&gt;</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">&lt;</span>forward_range R<span class="sy1">&gt;</span>
requires permutable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;&gt;</span>
<span class="kw4">constexpr</span> borrowed_subrange_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span> rotate<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span> middle<span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> OutputIter<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> OutputIter
rotate_copy<span class="br0">(</span>ForwardIter first, ForwardIter middle,
ForwardIter last, OutputIter result<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2<span class="sy1">&gt;</span>
ForwardIter2
rotate_copy<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first, ForwardIter1 middle,
ForwardIter1 last, ForwardIter2 result<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I, <span class="kw1">class</span> O<span class="sy1">&gt;</span>
<span class="kw1">using</span> rotate_copy_result <span class="sy1">=</span> in_out_result<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>forward_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, weakly_incrementable O<span class="sy1">&gt;</span>
requires indirectly_copyable<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> rotate_copy_result<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</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">&lt;</span>forward_range R, weakly_incrementable O<span class="sy1">&gt;</span>
requires indirectly_copyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> rotate_copy_result<span class="sy1">&lt;</span>borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span>
rotate_copy<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span> middle, O result<span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#37319;&#26679;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> PopulationIter, <span class="kw1">class</span> SampleIter,
<span class="kw1">class</span> Distance, <span class="kw1">class</span> UniformRandomBitGenerator<span class="sy1">&gt;</span>
SampleIter sample<span class="br0">(</span>PopulationIter first, PopulationIter last,
SampleIter out, Distance n,
UniformRandomBitGenerator<span class="sy3">&amp;&amp;</span> g<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S,
weakly_incrementable O, <span class="kw1">class</span> Gen<span class="sy1">&gt;</span>
requires <span class="br0">(</span>forward_iterator<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> <span class="sy3">||</span> random_access_iterator<span class="sy1">&lt;</span>O<span class="sy1">&gt;</span><span class="br0">)</span> <span class="sy3">&amp;&amp;</span>
indirectly_copyable<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
uniform_random_bit_generator<span class="sy1">&lt;</span>remove_reference_t<span class="sy1">&lt;</span>Gen<span class="sy1">&gt;&gt;</span>
O sample<span class="br0">(</span>I first, S last, O out, iter_difference_t<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> n, Gen<span class="sy3">&amp;&amp;</span> g<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_range R, weakly_incrementable O, <span class="kw1">class</span> Gen<span class="sy1">&gt;</span>
requires <span class="br0">(</span>forward_range<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span> <span class="sy3">||</span> random_access_iterator<span class="sy1">&lt;</span>O<span class="sy1">&gt;</span><span class="br0">)</span> <span class="sy3">&amp;&amp;</span>
indirectly_copyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
uniform_random_bit_generator<span class="sy1">&lt;</span>remove_reference_t<span class="sy1">&lt;</span>Gen<span class="sy1">&gt;&gt;</span>
O sample<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, O out, range_difference_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span> n, Gen<span class="sy3">&amp;&amp;</span> g<span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#25171;&#20081;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> RandomAccessIter, <span class="kw1">class</span> UniformRandomBitGenerator<span class="sy1">&gt;</span>
<span class="kw4">void</span> shuffle<span class="br0">(</span>RandomAccessIter first,
RandomAccessIter last,
UniformRandomBitGenerator<span class="sy3">&amp;&amp;</span> g<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>random_access_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Gen<span class="sy1">&gt;</span>
requires permutable<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
uniform_random_bit_generator<span class="sy1">&lt;</span>remove_reference_t<span class="sy1">&lt;</span>Gen<span class="sy1">&gt;&gt;</span>
I shuffle<span class="br0">(</span>I first, S last, Gen<span class="sy3">&amp;&amp;</span> g<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>random_access_range R, <span class="kw1">class</span> Gen<span class="sy1">&gt;</span>
requires permutable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;&gt;</span> <span class="sy3">&amp;&amp;</span>
uniform_random_bit_generator<span class="sy1">&lt;</span>remove_reference_t<span class="sy1">&lt;</span>Gen<span class="sy1">&gt;&gt;</span>
borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span> shuffle<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, Gen<span class="sy3">&amp;&amp;</span> g<span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#36801;&#31227;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> ForwardIter
shift_left<span class="br0">(</span>ForwardIter first, ForwardIter last,
<span class="kw1">typename</span> iterator_traits<span class="sy1">&lt;</span>ForwardIter<span class="sy1">&gt;</span><span class="sy4">::</span><span class="me2">difference_type</span> n<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter<span class="sy1">&gt;</span>
ForwardIter
shift_left<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, ForwardIter last,
<span class="kw1">typename</span> iterator_traits<span class="sy1">&lt;</span>ForwardIter<span class="sy1">&gt;</span><span class="sy4">::</span><span class="me2">difference_type</span> n<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> ForwardIter
shift_right<span class="br0">(</span>ForwardIter first, ForwardIter last,
<span class="kw1">typename</span> iterator_traits<span class="sy1">&lt;</span>ForwardIter<span class="sy1">&gt;</span><span class="sy4">::</span><span class="me2">difference_type</span> n<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter<span class="sy1">&gt;</span>
ForwardIter
shift_right<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, ForwardIter last,
<span class="kw1">typename</span> iterator_traits<span class="sy1">&lt;</span>ForwardIter<span class="sy1">&gt;</span><span class="sy4">::</span><span class="me2">difference_type</span> n<span class="br0">)</span><span class="sy4">;</span>
<span class="co1">// &#25490;&#24207;&#19982;&#30456;&#20851;&#25805;&#20316;</span>
<span class="co1">// &#25490;&#24207;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> RandomAccessIter<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">void</span> sort<span class="br0">(</span>RandomAccessIter first, RandomAccessIter last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> RandomAccessIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">void</span> sort<span class="br0">(</span>RandomAccessIter first, RandomAccessIter last,
Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> RandomAccessIter<span class="sy1">&gt;</span>
<span class="kw4">void</span> sort<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
RandomAccessIter first, RandomAccessIter last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> RandomAccessIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">void</span> sort<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
RandomAccessIter first, RandomAccessIter last,
Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>random_access_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span>,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires sortable<span class="sy1">&lt;</span>I, Comp, Proj<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> I
sort<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>random_access_range R, <span class="kw1">class</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires sortable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Comp, Proj<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>
sort<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> RandomAccessIter<span class="sy1">&gt;</span>
<span class="kw4">void</span> stable_sort<span class="br0">(</span>RandomAccessIter first, RandomAccessIter last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> RandomAccessIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">void</span> stable_sort<span class="br0">(</span>RandomAccessIter first, RandomAccessIter last,
Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> RandomAccessIter<span class="sy1">&gt;</span>
<span class="kw4">void</span> stable_sort<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
RandomAccessIter first, RandomAccessIter last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> RandomAccessIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">void</span> stable_sort<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
RandomAccessIter first, RandomAccessIter last,
Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>random_access_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span>,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires sortable<span class="sy1">&lt;</span>I, Comp, Proj<span class="sy1">&gt;</span>
I stable_sort<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>random_access_range R, <span class="kw1">class</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires sortable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Comp, Proj<span class="sy1">&gt;</span>
borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>
stable_sort<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> RandomAccessIter<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">void</span> partial_sort<span class="br0">(</span>RandomAccessIter first, RandomAccessIter middle,
RandomAccessIter last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> RandomAccessIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">void</span> partial_sort<span class="br0">(</span>RandomAccessIter first, RandomAccessIter middle,
RandomAccessIter last, Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> RandomAccessIter<span class="sy1">&gt;</span>
<span class="kw4">void</span> partial_sort<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
RandomAccessIter first, RandomAccessIter middle,
RandomAccessIter last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> RandomAccessIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">void</span> partial_sort<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
RandomAccessIter first, RandomAccessIter middle,
RandomAccessIter last, Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>random_access_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span>,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires sortable<span class="sy1">&lt;</span>I, Comp, Proj<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> I
partial_sort<span class="br0">(</span>I first, I middle, S last, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>random_access_range R, <span class="kw1">class</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires sortable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Comp, Proj<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>
partial_sort<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span> middle, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>,
Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter, <span class="kw1">class</span> RandomAccessIter<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> RandomAccessIter
partial_sort_copy<span class="br0">(</span>InputIter first, InputIter last,
RandomAccessIter result_first,
RandomAccessIter result_last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter, <span class="kw1">class</span> RandomAccessIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> RandomAccessIter
partial_sort_copy<span class="br0">(</span>InputIter first, InputIter last,
RandomAccessIter result_first,
RandomAccessIter result_last,
Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> RandomAccessIter<span class="sy1">&gt;</span>
RandomAccessIter
partial_sort_copy<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, ForwardIter last,
RandomAccessIter result_first,
RandomAccessIter result_last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> RandomAccessIter,
<span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
RandomAccessIter
partial_sort_copy<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, ForwardIter last,
RandomAccessIter result_first,
RandomAccessIter result_last,
Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I, <span class="kw1">class</span> O<span class="sy1">&gt;</span>
<span class="kw1">using</span> partial_sort_copy_result <span class="sy1">=</span> in_out_result<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I1, sentinel_for<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1,
random_access_iterator I2, sentinel_for<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
<span class="kw1">class</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</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">&gt;</span>
requires indirectly_copyable<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span> sortable<span class="sy1">&lt;</span>I2, Comp, Proj2<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
indirect_strict_weak_order<span class="sy1">&lt;</span>Comp, projected<span class="sy1">&lt;</span>I1, Proj1<span class="sy1">&gt;</span>, projected<span class="sy1">&lt;</span>I2, Proj2<span class="sy1">&gt;&gt;</span>
<span class="kw4">constexpr</span> partial_sort_copy_result<span class="sy1">&lt;</span>I1, I2<span class="sy1">&gt;</span>
partial_sort_copy<span class="br0">(</span>I1 first, S1 last, I2 result_first, S2 result_last,
Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj1 proj1 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_range R1, random_access_range R2, <span class="kw1">class</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</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">&gt;</span>
requires indirectly_copyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R1<span class="sy1">&gt;</span>, iterator_t<span class="sy1">&lt;</span>R2<span class="sy1">&gt;&gt;</span> <span class="sy3">&amp;&amp;</span>
sortable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R2<span class="sy1">&gt;</span>, Comp, Proj2<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
indirect_strict_weak_order<span class="sy1">&lt;</span>Comp, projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R1<span class="sy1">&gt;</span>, Proj1<span class="sy1">&gt;</span>,
projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R2<span class="sy1">&gt;</span>, Proj2<span class="sy1">&gt;&gt;</span>
<span class="kw4">constexpr</span> partial_sort_copy_result<span class="sy1">&lt;</span>borrowed_iterator_t<span class="sy1">&lt;</span>R1<span class="sy1">&gt;</span>, borrowed_iterator_t<span class="sy1">&lt;</span>R2<span class="sy1">&gt;&gt;</span>
partial_sort_copy<span class="br0">(</span>R1<span class="sy3">&amp;&amp;</span> r, R2<span class="sy3">&amp;&amp;</span> result_r, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> is_sorted<span class="br0">(</span>ForwardIter first, ForwardIter last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> is_sorted<span class="br0">(</span>ForwardIter first, ForwardIter last,
Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter<span class="sy1">&gt;</span>
<span class="kw4">bool</span> is_sorted<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, ForwardIter last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">bool</span> is_sorted<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, ForwardIter last,
Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>forward_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_strict_weak_order<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> is_sorted<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>forward_range R, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_strict_weak_order<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> is_sorted<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> ForwardIter
is_sorted_until<span class="br0">(</span>ForwardIter first, ForwardIter last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> ForwardIter
is_sorted_until<span class="br0">(</span>ForwardIter first, ForwardIter last,
Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter<span class="sy1">&gt;</span>
ForwardIter
is_sorted_until<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, ForwardIter last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
ForwardIter
is_sorted_until<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, ForwardIter last,
Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>forward_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_strict_weak_order<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> I is_sorted_until<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>forward_range R, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_strict_weak_order<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>
is_sorted_until<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#31532; N &#20803;&#32032;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> RandomAccessIter<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">void</span> nth_element<span class="br0">(</span>RandomAccessIter first, RandomAccessIter nth,
RandomAccessIter last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> RandomAccessIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">void</span> nth_element<span class="br0">(</span>RandomAccessIter first, RandomAccessIter nth,
RandomAccessIter last, Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> RandomAccessIter<span class="sy1">&gt;</span>
<span class="kw4">void</span> nth_element<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
RandomAccessIter first, RandomAccessIter nth,
RandomAccessIter last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> RandomAccessIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">void</span> nth_element<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
RandomAccessIter first, RandomAccessIter nth,
RandomAccessIter last, Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>random_access_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span>,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires sortable<span class="sy1">&lt;</span>I, Comp, Proj<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> I
nth_element<span class="br0">(</span>I first, I nth, S last, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>random_access_range R, <span class="kw1">class</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires sortable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Comp, Proj<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>
nth_element<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span> nth, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#20108;&#20998;&#25628;&#32034;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> ForwardIter
lower_bound<span class="br0">(</span>ForwardIter first, ForwardIter last,
<span class="kw4">const</span> T<span class="sy3">&amp;</span> value<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> T, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> ForwardIter
lower_bound<span class="br0">(</span>ForwardIter first, ForwardIter last,
<span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>forward_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_strict_weak_order<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> I lower_bound<span class="br0">(</span>I first, S last, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>,
Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>forward_range R, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_strict_weak_order<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span>
ranges<span class="sy4">::</span><span class="me2">less</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>
lower_bound<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> ForwardIter
upper_bound<span class="br0">(</span>ForwardIter first, ForwardIter last,
<span class="kw4">const</span> T<span class="sy3">&amp;</span> value<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> T, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> ForwardIter
upper_bound<span class="br0">(</span>ForwardIter first, ForwardIter last,
<span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>forward_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_strict_weak_order<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> I upper_bound<span class="br0">(</span>I first, S last, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>forward_range R, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_strict_weak_order<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span>
ranges<span class="sy4">::</span><span class="me2">less</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>
upper_bound<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> pair<span class="sy1">&lt;</span>ForwardIter, ForwardIter<span class="sy1">&gt;</span>
equal_range<span class="br0">(</span>ForwardIter first, ForwardIter last,
<span class="kw4">const</span> T<span class="sy3">&amp;</span> value<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> T, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> pair<span class="sy1">&lt;</span>ForwardIter, ForwardIter<span class="sy1">&gt;</span>
equal_range<span class="br0">(</span>ForwardIter first, ForwardIter last,
<span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>forward_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_strict_weak_order<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> subrange<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span>
equal_range<span class="br0">(</span>I first, S last, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>forward_range R, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_strict_weak_order<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span>
ranges<span class="sy4">::</span><span class="me2">less</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> borrowed_subrange_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>
equal_range<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span>
binary_search<span class="br0">(</span>ForwardIter first, ForwardIter last,
<span class="kw4">const</span> T<span class="sy3">&amp;</span> value<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> T, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span>
binary_search<span class="br0">(</span>ForwardIter first, ForwardIter last,
<span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>forward_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_strict_weak_order<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</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">&amp;</span> value, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>,
Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>forward_range R, <span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_strict_weak_order<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span>
ranges<span class="sy4">::</span><span class="me2">less</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> binary_search<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, <span class="kw4">const</span> T<span class="sy3">&amp;</span> value, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>,
Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#21010;&#20998;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter, <span class="kw1">class</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> is_partitioned<span class="br0">(</span>InputIter first, InputIter last, Pred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">bool</span> is_partitioned<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, ForwardIter last, Pred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_unary_predicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> is_partitioned<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_range R, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_unary_predicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> is_partitioned<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, Pred pred, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> ForwardIter partition<span class="br0">(</span>ForwardIter first,
ForwardIter last,
Pred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Pred<span class="sy1">&gt;</span>
ForwardIter partition<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first,
ForwardIter last,
Pred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>permutable I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_unary_predicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> subrange<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span>
partition<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>forward_range R, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_unary_predicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
requires permutable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;&gt;</span>
<span class="kw4">constexpr</span> borrowed_subrange_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>
partition<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, Pred pred, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> BidirectionalIter, <span class="kw1">class</span> Pred<span class="sy1">&gt;</span>
BidirectionalIter stable_partition<span class="br0">(</span>BidirectionalIter first,
BidirectionalIter last,
Pred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> BidirectionalIter, <span class="kw1">class</span> Pred<span class="sy1">&gt;</span>
BidirectionalIter stable_partition<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
BidirectionalIter first,
BidirectionalIter last,
Pred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>bidirectional_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_unary_predicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
requires permutable<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span>
subrange<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> stable_partition<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>bidirectional_range R, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_unary_predicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
requires permutable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;&gt;</span>
borrowed_subrange_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span> stable_partition<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, Pred pred, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter, <span class="kw1">class</span> OutputIter1,
<span class="kw1">class</span> OutputIter2, <span class="kw1">class</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> pair<span class="sy1">&lt;</span>OutputIter1, OutputIter2<span class="sy1">&gt;</span>
partition_copy<span class="br0">(</span>InputIter first, InputIter last,
OutputIter1 out_true, OutputIter2 out_false,
Pred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> ForwardIter1,
<span class="kw1">class</span> ForwardIter2, <span class="kw1">class</span> Pred<span class="sy1">&gt;</span>
pair<span class="sy1">&lt;</span>ForwardIter1, ForwardIter2<span class="sy1">&gt;</span>
partition_copy<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, ForwardIter last,
ForwardIter1 out_true, ForwardIter2 out_false,
Pred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I, <span class="kw1">class</span> O1, <span class="kw1">class</span> O2<span class="sy1">&gt;</span>
<span class="kw1">using</span> partition_copy_result <span class="sy1">=</span> in_out_out_result<span class="sy1">&lt;</span>I, O1, O2<span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S,
weakly_incrementable O1, weakly_incrementable O2,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity, indirect_unary_predicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
requires indirectly_copyable<span class="sy1">&lt;</span>I, O1<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span> indirectly_copyable<span class="sy1">&lt;</span>I, O2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> partition_copy_result<span class="sy1">&lt;</span>I, O1, O2<span class="sy1">&gt;</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> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_range R, weakly_incrementable O1, weakly_incrementable O2,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_unary_predicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
requires indirectly_copyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, O1<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
indirectly_copyable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, O2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> partition_copy_result<span class="sy1">&lt;</span>borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, O1, O2<span class="sy1">&gt;</span>
partition_copy<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, O1 out_true, O2 out_false, Pred pred, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> ForwardIter
partition_point<span class="br0">(</span>ForwardIter first, ForwardIter last,
Pred pred<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>forward_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_unary_predicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> I partition_point<span class="br0">(</span>I first, S last, Pred pred, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>forward_range R, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_unary_predicate<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Pred<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>
partition_point<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, Pred pred, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#24402;&#24182;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter1, <span class="kw1">class</span> InputIter2, <span class="kw1">class</span> OutputIter<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> OutputIter
merge<span class="br0">(</span>InputIter1 first1, InputIter1 last1,
InputIter2 first2, InputIter2 last2,
OutputIter result<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter1, <span class="kw1">class</span> InputIter2, <span class="kw1">class</span> OutputIter,
<span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> OutputIter
merge<span class="br0">(</span>InputIter1 first1, InputIter1 last1,
InputIter2 first2, InputIter2 last2,
OutputIter result, Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2,
<span class="kw1">class</span> ForwardIter<span class="sy1">&gt;</span>
ForwardIter
merge<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2, ForwardIter2 last2,
ForwardIter result<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2,
<span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
ForwardIter
merge<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2, ForwardIter2 last2,
ForwardIter result, Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2, <span class="kw1">class</span> O<span class="sy1">&gt;</span>
<span class="kw1">using</span> merge_result <span class="sy1">=</span> in_in_out_result<span class="sy1">&lt;</span>I1, I2, O<span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I1, sentinel_for<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, input_iterator I2, sentinel_for<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
weakly_incrementable O, <span class="kw1">class</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</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">&gt;</span>
requires mergeable<span class="sy1">&lt;</span>I1, I2, O, Comp, Proj1, Proj2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> merge_result<span class="sy1">&lt;</span>I1, I2, O<span class="sy1">&gt;</span>
merge<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2, O result,
Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj1 proj1 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_range R1, input_range R2, weakly_incrementable O, <span class="kw1">class</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</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">&gt;</span>
requires mergeable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R1<span class="sy1">&gt;</span>, iterator_t<span class="sy1">&lt;</span>R2<span class="sy1">&gt;</span>, O, Comp, Proj1, Proj2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> merge_result<span class="sy1">&lt;</span>borrowed_iterator_t<span class="sy1">&lt;</span>R1<span class="sy1">&gt;</span>, borrowed_iterator_t<span class="sy1">&lt;</span>R2<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span>
merge<span class="br0">(</span>R1<span class="sy3">&amp;&amp;</span> r1, R2<span class="sy3">&amp;&amp;</span> r2, O result,
Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj1 proj1 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> BidirectionalIter<span class="sy1">&gt;</span>
<span class="kw4">void</span> inplace_merge<span class="br0">(</span>BidirectionalIter first,
BidirectionalIter middle,
BidirectionalIter last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> BidirectionalIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">void</span> inplace_merge<span class="br0">(</span>BidirectionalIter first,
BidirectionalIter middle,
BidirectionalIter last, Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> BidirectionalIter<span class="sy1">&gt;</span>
<span class="kw4">void</span> inplace_merge<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
BidirectionalIter first,
BidirectionalIter middle,
BidirectionalIter last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> BidirectionalIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">void</span> inplace_merge<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
BidirectionalIter first,
BidirectionalIter middle,
BidirectionalIter last, Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>bidirectional_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span>,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires sortable<span class="sy1">&lt;</span>I, Comp, Proj<span class="sy1">&gt;</span>
I inplace_merge<span class="br0">(</span>I first, I middle, S last, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>bidirectional_range R, <span class="kw1">class</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires sortable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Comp, Proj<span class="sy1">&gt;</span>
borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>
inplace_merge<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span> middle, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>,
Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#38598;&#21512;&#25805;&#20316;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter1, <span class="kw1">class</span> InputIter2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> includes<span class="br0">(</span>InputIter1 first1, InputIter1 last1,
InputIter2 first2, InputIter2 last2<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter1, <span class="kw1">class</span> InputIter2, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> includes<span class="br0">(</span>InputIter1 first1, InputIter1 last1,
InputIter2 first2, InputIter2 last2,
Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2<span class="sy1">&gt;</span>
<span class="kw4">bool</span> includes<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2, ForwardIter2 last2<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2,
<span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">bool</span> includes<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2, ForwardIter2 last2,
Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I1, sentinel_for<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, input_iterator I2, sentinel_for<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
<span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity,
indirect_strict_weak_order<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I1, Proj1<span class="sy1">&gt;</span>, projected<span class="sy1">&lt;</span>I2, Proj2<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span>
ranges<span class="sy4">::</span><span class="me2">less</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</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> <span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_range R1, input_range R2, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity,
<span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity,
indirect_strict_weak_order<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R1<span class="sy1">&gt;</span>, Proj1<span class="sy1">&gt;</span>,
projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R2<span class="sy1">&gt;</span>, Proj2<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> includes<span class="br0">(</span>R1<span class="sy3">&amp;&amp;</span> r1, R2<span class="sy3">&amp;&amp;</span> r2, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter1, <span class="kw1">class</span> InputIter2, <span class="kw1">class</span> OutputIter<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> OutputIter
set_union<span class="br0">(</span>InputIter1 first1, InputIter1 last1,
InputIter2 first2, InputIter2 last2,
OutputIter result<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter1, <span class="kw1">class</span> InputIter2, <span class="kw1">class</span> OutputIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> OutputIter
set_union<span class="br0">(</span>InputIter1 first1, InputIter1 last1,
InputIter2 first2, InputIter2 last2,
OutputIter result, Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2,
<span class="kw1">class</span> ForwardIter<span class="sy1">&gt;</span>
ForwardIter
set_union<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2, ForwardIter2 last2,
ForwardIter result<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2,
<span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
ForwardIter
set_union<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2, ForwardIter2 last2,
ForwardIter result, Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2, <span class="kw1">class</span> O<span class="sy1">&gt;</span>
<span class="kw1">using</span> set_union_result <span class="sy1">=</span> in_in_out_result<span class="sy1">&lt;</span>I1, I2, O<span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I1, sentinel_for<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, input_iterator I2, sentinel_for<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
weakly_incrementable O, <span class="kw1">class</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</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">&gt;</span>
requires mergeable<span class="sy1">&lt;</span>I1, I2, O, Comp, Proj1, Proj2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> set_union_result<span class="sy1">&lt;</span>I1, I2, O<span class="sy1">&gt;</span>
set_union<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2, O result, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_range R1, input_range R2, weakly_incrementable O,
<span class="kw1">class</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</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">&gt;</span>
requires mergeable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R1<span class="sy1">&gt;</span>, iterator_t<span class="sy1">&lt;</span>R2<span class="sy1">&gt;</span>, O, Comp, Proj1, Proj2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> set_union_result<span class="sy1">&lt;</span>borrowed_iterator_t<span class="sy1">&lt;</span>R1<span class="sy1">&gt;</span>, borrowed_iterator_t<span class="sy1">&lt;</span>R2<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span>
set_union<span class="br0">(</span>R1<span class="sy3">&amp;&amp;</span> r1, R2<span class="sy3">&amp;&amp;</span> r2, O result, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter1, <span class="kw1">class</span> InputIter2, <span class="kw1">class</span> OutputIter<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> OutputIter
set_intersection<span class="br0">(</span>InputIter1 first1, InputIter1 last1,
InputIter2 first2, InputIter2 last2,
OutputIter result<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter1, <span class="kw1">class</span> InputIter2, <span class="kw1">class</span> OutputIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> OutputIter
set_intersection<span class="br0">(</span>InputIter1 first1, InputIter1 last1,
InputIter2 first2, InputIter2 last2,
OutputIter result, Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2,
<span class="kw1">class</span> ForwardIter<span class="sy1">&gt;</span>
ForwardIter
set_intersection<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2, ForwardIter2 last2,
ForwardIter result<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2,
<span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
ForwardIter
set_intersection<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2, ForwardIter2 last2,
ForwardIter result, Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2, <span class="kw1">class</span> O<span class="sy1">&gt;</span>
<span class="kw1">using</span> set_intersection_result <span class="sy1">=</span> in_in_out_result<span class="sy1">&lt;</span>I1, I2, O<span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I1, sentinel_for<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, input_iterator I2, sentinel_for<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
weakly_incrementable O, <span class="kw1">class</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</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">&gt;</span>
requires mergeable<span class="sy1">&lt;</span>I1, I2, O, Comp, Proj1, Proj2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> set_intersection_result<span class="sy1">&lt;</span>I1, I2, O<span class="sy1">&gt;</span>
set_intersection<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2, O result,
Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj1 proj1 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_range R1, input_range R2, weakly_incrementable O,
<span class="kw1">class</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</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">&gt;</span>
requires mergeable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R1<span class="sy1">&gt;</span>, iterator_t<span class="sy1">&lt;</span>R2<span class="sy1">&gt;</span>, O, Comp, Proj1, Proj2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> set_intersection_result<span class="sy1">&lt;</span>borrowed_iterator_t<span class="sy1">&lt;</span>R1<span class="sy1">&gt;</span>, borrowed_iterator_t<span class="sy1">&lt;</span>R2<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span>
set_intersection<span class="br0">(</span>R1<span class="sy3">&amp;&amp;</span> r1, R2<span class="sy3">&amp;&amp;</span> r2, O result,
Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj1 proj1 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter1, <span class="kw1">class</span> InputIter2, <span class="kw1">class</span> OutputIter<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> OutputIter
set_difference<span class="br0">(</span>InputIter1 first1, InputIter1 last1,
InputIter2 first2, InputIter2 last2,
OutputIter result<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter1, <span class="kw1">class</span> InputIter2, <span class="kw1">class</span> OutputIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> OutputIter
set_difference<span class="br0">(</span>InputIter1 first1, InputIter1 last1,
InputIter2 first2, InputIter2 last2,
OutputIter result, Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2,
<span class="kw1">class</span> ForwardIter<span class="sy1">&gt;</span>
ForwardIter
set_difference<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2, ForwardIter2 last2,
ForwardIter result<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2,
<span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
ForwardIter
set_difference<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2, ForwardIter2 last2,
ForwardIter result, Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I, <span class="kw1">class</span> O<span class="sy1">&gt;</span>
<span class="kw1">using</span> set_difference_result <span class="sy1">=</span> in_out_result<span class="sy1">&lt;</span>I, O<span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I1, sentinel_for<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, input_iterator I2, sentinel_for<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
weakly_incrementable O, <span class="kw1">class</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</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">&gt;</span>
requires mergeable<span class="sy1">&lt;</span>I1, I2, O, Comp, Proj1, Proj2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> set_difference_result<span class="sy1">&lt;</span>I1, O<span class="sy1">&gt;</span>
set_difference<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2, O result,
Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj1 proj1 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_range R1, input_range R2, weakly_incrementable O,
<span class="kw1">class</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</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">&gt;</span>
requires mergeable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R1<span class="sy1">&gt;</span>, iterator_t<span class="sy1">&lt;</span>R2<span class="sy1">&gt;</span>, O, Comp, Proj1, Proj2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> set_difference_result<span class="sy1">&lt;</span>borrowed_iterator_t<span class="sy1">&lt;</span>R1<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span>
set_difference<span class="br0">(</span>R1<span class="sy3">&amp;&amp;</span> r1, R2<span class="sy3">&amp;&amp;</span> r2, O result,
Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj1 proj1 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter1, <span class="kw1">class</span> InputIter2, <span class="kw1">class</span> OutputIter<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> OutputIter
set_symmetric_difference<span class="br0">(</span>InputIter1 first1, InputIter1 last1,
InputIter2 first2, InputIter2 last2,
OutputIter result<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter1, <span class="kw1">class</span> InputIter2, <span class="kw1">class</span> OutputIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> OutputIter
set_symmetric_difference<span class="br0">(</span>InputIter1 first1, InputIter1 last1,
InputIter2 first2, InputIter2 last2,
OutputIter result, Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2,
<span class="kw1">class</span> ForwardIter<span class="sy1">&gt;</span>
ForwardIter
set_symmetric_difference<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2, ForwardIter2 last2,
ForwardIter result<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2,
<span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
ForwardIter
set_symmetric_difference<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2, ForwardIter2 last2,
ForwardIter result, Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2, <span class="kw1">class</span> O<span class="sy1">&gt;</span>
<span class="kw1">using</span> set_symmetric_difference_result <span class="sy1">=</span> in_in_out_result<span class="sy1">&lt;</span>I1, I2, O<span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I1, sentinel_for<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, input_iterator I2, sentinel_for<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
weakly_incrementable O, <span class="kw1">class</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</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">&gt;</span>
requires mergeable<span class="sy1">&lt;</span>I1, I2, O, Comp, Proj1, Proj2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> set_symmetric_difference_result<span class="sy1">&lt;</span>I1, I2, O<span class="sy1">&gt;</span>
set_symmetric_difference<span class="br0">(</span>I1 first1, S1 last1, I2 first2, S2 last2, O result,
Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj1 proj1 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>,
Proj2 proj2 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_range R1, input_range R2, weakly_incrementable O,
<span class="kw1">class</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</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">&gt;</span>
requires mergeable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R1<span class="sy1">&gt;</span>, iterator_t<span class="sy1">&lt;</span>R2<span class="sy1">&gt;</span>, O, Comp, Proj1, Proj2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> set_symmetric_difference_result<span class="sy1">&lt;</span>borrowed_iterator_t<span class="sy1">&lt;</span>R1<span class="sy1">&gt;</span>,
borrowed_iterator_t<span class="sy1">&lt;</span>R2<span class="sy1">&gt;</span>, O<span class="sy1">&gt;</span>
set_symmetric_difference<span class="br0">(</span>R1<span class="sy3">&amp;&amp;</span> r1, R2<span class="sy3">&amp;&amp;</span> r2, O result, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#22534;&#25805;&#20316;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> RandomAccessIter<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">void</span> push_heap<span class="br0">(</span>RandomAccessIter first, RandomAccessIter last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> RandomAccessIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">void</span> push_heap<span class="br0">(</span>RandomAccessIter first, RandomAccessIter last,
Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>random_access_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span>,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires sortable<span class="sy1">&lt;</span>I, Comp, Proj<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> I
push_heap<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>random_access_range R, <span class="kw1">class</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires sortable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Comp, Proj<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>
push_heap<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> RandomAccessIter<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">void</span> pop_heap<span class="br0">(</span>RandomAccessIter first, RandomAccessIter last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> RandomAccessIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">void</span> pop_heap<span class="br0">(</span>RandomAccessIter first, RandomAccessIter last,
Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>random_access_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span>,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires sortable<span class="sy1">&lt;</span>I, Comp, Proj<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> I
pop_heap<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>random_access_range R, <span class="kw1">class</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires sortable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Comp, Proj<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>
pop_heap<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> RandomAccessIter<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">void</span> make_heap<span class="br0">(</span>RandomAccessIter first, RandomAccessIter last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> RandomAccessIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">void</span> make_heap<span class="br0">(</span>RandomAccessIter first, RandomAccessIter last,
Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>random_access_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span>,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires sortable<span class="sy1">&lt;</span>I, Comp, Proj<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> I
make_heap<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>random_access_range R, <span class="kw1">class</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires sortable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Comp, Proj<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>
make_heap<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> RandomAccessIter<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">void</span> sort_heap<span class="br0">(</span>RandomAccessIter first, RandomAccessIter last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> RandomAccessIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">void</span> sort_heap<span class="br0">(</span>RandomAccessIter first, RandomAccessIter last,
Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>random_access_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span>,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires sortable<span class="sy1">&lt;</span>I, Comp, Proj<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> I
sort_heap<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>random_access_range R, <span class="kw1">class</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span>, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires sortable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Comp, Proj<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>
sort_heap<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> RandomAccessIter<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> is_heap<span class="br0">(</span>RandomAccessIter first, RandomAccessIter last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> RandomAccessIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> is_heap<span class="br0">(</span>RandomAccessIter first, RandomAccessIter last,
Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> RandomAccessIter<span class="sy1">&gt;</span>
<span class="kw4">bool</span> is_heap<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
RandomAccessIter first, RandomAccessIter last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> RandomAccessIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">bool</span> is_heap<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
RandomAccessIter first, RandomAccessIter last,
Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>random_access_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_strict_weak_order<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> is_heap<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>random_access_range R, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_strict_weak_order<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> is_heap<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> RandomAccessIter<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> RandomAccessIter
is_heap_until<span class="br0">(</span>RandomAccessIter first, RandomAccessIter last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> RandomAccessIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> RandomAccessIter
is_heap_until<span class="br0">(</span>RandomAccessIter first, RandomAccessIter last,
Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> RandomAccessIter<span class="sy1">&gt;</span>
RandomAccessIter
is_heap_until<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
RandomAccessIter first, RandomAccessIter last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> RandomAccessIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
RandomAccessIter
is_heap_until<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
RandomAccessIter first, RandomAccessIter last,
Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>random_access_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_strict_weak_order<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> I is_heap_until<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>random_access_range R, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_strict_weak_order<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>
is_heap_until<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#26368;&#23567;&#19982;&#26368;&#22823;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span> <span class="kw4">constexpr</span> <span class="kw4">const</span> T<span class="sy3">&amp;</span> min<span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> a, <span class="kw4">const</span> T<span class="sy3">&amp;</span> b<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">const</span> T<span class="sy3">&amp;</span> min<span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> a, <span class="kw4">const</span> T<span class="sy3">&amp;</span> b, Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> T min<span class="br0">(</span>initializer_list<span class="sy1">&lt;</span>T<span class="sy1">&gt;</span> t<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> T min<span class="br0">(</span>initializer_list<span class="sy1">&lt;</span>T<span class="sy1">&gt;</span> t, Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_strict_weak_order<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">const</span> T<span class="sy3">&amp;</span> min<span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> a, <span class="kw4">const</span> T<span class="sy3">&amp;</span> b, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>copyable T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_strict_weak_order<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> T min<span class="br0">(</span>initializer_list<span class="sy1">&lt;</span>T<span class="sy1">&gt;</span> r, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_range R, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_strict_weak_order<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span><span class="sy1">&gt;</span>
requires indirectly_copyable_storable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, range_value_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span><span class="sy2">*</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> range_value_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>
min<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span> <span class="kw4">constexpr</span> <span class="kw4">const</span> T<span class="sy3">&amp;</span> max<span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> a, <span class="kw4">const</span> T<span class="sy3">&amp;</span> b<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">const</span> T<span class="sy3">&amp;</span> max<span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> a, <span class="kw4">const</span> T<span class="sy3">&amp;</span> b, Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> T max<span class="br0">(</span>initializer_list<span class="sy1">&lt;</span>T<span class="sy1">&gt;</span> t<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> T max<span class="br0">(</span>initializer_list<span class="sy1">&lt;</span>T<span class="sy1">&gt;</span> t, Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_strict_weak_order<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">const</span> T<span class="sy3">&amp;</span> max<span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> a, <span class="kw4">const</span> T<span class="sy3">&amp;</span> b, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>copyable T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_strict_weak_order<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> T max<span class="br0">(</span>initializer_list<span class="sy1">&lt;</span>T<span class="sy1">&gt;</span> r, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_range R, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_strict_weak_order<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span><span class="sy1">&gt;</span>
requires indirectly_copyable_storable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, range_value_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span><span class="sy2">*</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> range_value_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>
max<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span> <span class="kw4">constexpr</span> pair<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy3">&amp;</span>, <span class="kw4">const</span> T<span class="sy3">&amp;</span><span class="sy1">&gt;</span> minmax<span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> a, <span class="kw4">const</span> T<span class="sy3">&amp;</span> b<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> pair<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy3">&amp;</span>, <span class="kw4">const</span> T<span class="sy3">&amp;</span><span class="sy1">&gt;</span> minmax<span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> a, <span class="kw4">const</span> T<span class="sy3">&amp;</span> b, Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> pair<span class="sy1">&lt;</span>T, T<span class="sy1">&gt;</span> minmax<span class="br0">(</span>initializer_list<span class="sy1">&lt;</span>T<span class="sy1">&gt;</span> t<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> pair<span class="sy1">&lt;</span>T, T<span class="sy1">&gt;</span> minmax<span class="br0">(</span>initializer_list<span class="sy1">&lt;</span>T<span class="sy1">&gt;</span> t, Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw1">using</span> minmax_result <span class="sy1">=</span> min_max_result<span class="sy1">&lt;</span>T<span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_strict_weak_order<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> minmax_result<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy3">&amp;</span><span class="sy1">&gt;</span>
minmax<span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> a, <span class="kw4">const</span> T<span class="sy3">&amp;</span> b, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>copyable T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_strict_weak_order<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> minmax_result<span class="sy1">&lt;</span>T<span class="sy1">&gt;</span>
minmax<span class="br0">(</span>initializer_list<span class="sy1">&lt;</span>T<span class="sy1">&gt;</span> r, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_range R, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_strict_weak_order<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span><span class="sy1">&gt;</span>
requires indirectly_copyable_storable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, range_value_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span><span class="sy2">*</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> minmax_result<span class="sy1">&lt;</span>range_value_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;&gt;</span>
minmax<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> ForwardIter min_element<span class="br0">(</span>ForwardIter first, ForwardIter last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> ForwardIter min_element<span class="br0">(</span>ForwardIter first, ForwardIter last,
Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter<span class="sy1">&gt;</span>
ForwardIter min_element<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, ForwardIter last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
ForwardIter min_element<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, ForwardIter last,
Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>forward_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_strict_weak_order<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> I min_element<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>forward_range R, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_strict_weak_order<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>
min_element<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> ForwardIter max_element<span class="br0">(</span>ForwardIter first, ForwardIter last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> ForwardIter max_element<span class="br0">(</span>ForwardIter first, ForwardIter last,
Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter<span class="sy1">&gt;</span>
ForwardIter max_element<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, ForwardIter last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
ForwardIter max_element<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, ForwardIter last,
Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>forward_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_strict_weak_order<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> I max_element<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>forward_range R, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_strict_weak_order<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>
max_element<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> pair<span class="sy1">&lt;</span>ForwardIter, ForwardIter<span class="sy1">&gt;</span>
minmax_element<span class="br0">(</span>ForwardIter first, ForwardIter last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> pair<span class="sy1">&lt;</span>ForwardIter, ForwardIter<span class="sy1">&gt;</span>
minmax_element<span class="br0">(</span>ForwardIter first, ForwardIter last, Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter<span class="sy1">&gt;</span>
pair<span class="sy1">&lt;</span>ForwardIter, ForwardIter<span class="sy1">&gt;</span>
minmax_element<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, ForwardIter last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
pair<span class="sy1">&lt;</span>ForwardIter, ForwardIter<span class="sy1">&gt;</span>
minmax_element<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter first, ForwardIter last, Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I<span class="sy1">&gt;</span>
<span class="kw1">using</span> minmax_element_result <span class="sy1">=</span> min_max_result<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>forward_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_strict_weak_order<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> minmax_element_result<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span>
minmax_element<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>forward_range R, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_strict_weak_order<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> minmax_element_result<span class="sy1">&lt;</span>borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;&gt;</span>
minmax_element<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#26377;&#30028;&#20540;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">const</span> T<span class="sy3">&amp;</span> clamp<span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> v, <span class="kw4">const</span> T<span class="sy3">&amp;</span> lo, <span class="kw4">const</span> T<span class="sy3">&amp;</span> hi<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">const</span> T<span class="sy3">&amp;</span> clamp<span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> v, <span class="kw4">const</span> T<span class="sy3">&amp;</span> lo, <span class="kw4">const</span> T<span class="sy3">&amp;</span> hi, Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T, <span class="kw1">class</span> Proj <span class="sy1">=</span> identity,
indirect_strict_weak_order<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy2">*</span>, Proj<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">const</span> T<span class="sy3">&amp;</span>
clamp<span class="br0">(</span><span class="kw4">const</span> T<span class="sy3">&amp;</span> v, <span class="kw4">const</span> T<span class="sy3">&amp;</span> lo, <span class="kw4">const</span> T<span class="sy3">&amp;</span> hi, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#23383;&#20856;&#24207;&#27604;&#36739;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter1, <span class="kw1">class</span> InputIter2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span>
lexicographical_compare<span class="br0">(</span>InputIter1 first1, InputIter1 last1,
InputIter2 first2, InputIter2 last2<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter1, <span class="kw1">class</span> InputIter2, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span>
lexicographical_compare<span class="br0">(</span>InputIter1 first1, InputIter1 last1,
InputIter2 first2, InputIter2 last2,
Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2<span class="sy1">&gt;</span>
<span class="kw4">bool</span>
lexicographical_compare<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2, ForwardIter2 last2<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> ExecutionPolicy, <span class="kw1">class</span> ForwardIter1, <span class="kw1">class</span> ForwardIter2,
<span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">bool</span>
lexicographical_compare<span class="br0">(</span>ExecutionPolicy<span class="sy3">&amp;&amp;</span> exec,
ForwardIter1 first1, ForwardIter1 last1,
ForwardIter2 first2, ForwardIter2 last2,
Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_iterator I1, sentinel_for<span class="sy1">&lt;</span>I1<span class="sy1">&gt;</span> S1, input_iterator I2, sentinel_for<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span> S2,
<span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity, <span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity,
indirect_strict_weak_order<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>I1, Proj1<span class="sy1">&gt;</span>, projected<span class="sy1">&lt;</span>I2, Proj2<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span>
ranges<span class="sy4">::</span><span class="me2">less</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</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> <span class="br0">{</span><span class="br0">}</span>, Proj1 proj1 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>input_range R1, input_range R2, <span class="kw1">class</span> Proj1 <span class="sy1">=</span> identity,
<span class="kw1">class</span> Proj2 <span class="sy1">=</span> identity,
indirect_strict_weak_order<span class="sy1">&lt;</span>projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R1<span class="sy1">&gt;</span>, Proj1<span class="sy1">&gt;</span>,
projected<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R2<span class="sy1">&gt;</span>, Proj2<span class="sy1">&gt;&gt;</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span><span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span>
lexicographical_compare<span class="br0">(</span>R1<span class="sy3">&amp;&amp;</span> r1, R2<span class="sy3">&amp;&amp;</span> r2, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>,
Proj1 proj1 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj2 proj2 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="co1">// &#19977;&#36335;&#27604;&#36739;&#31639;&#27861;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter1, <span class="kw1">class</span> InputIter2, <span class="kw1">class</span> Cmp<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">auto</span>
lexicographical_compare_three_way<span class="br0">(</span>InputIter1 b1, InputIter1 e1,
InputIter2 b2, InputIter2 e2,
Cmp comp<span class="br0">)</span>
<span class="sy2">-</span><span class="sy1">&gt;</span> decltype<span class="br0">(</span>comp<span class="br0">(</span><span class="sy2">*</span>b1, <span class="sy2">*</span>b2<span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> InputIter1, <span class="kw1">class</span> InputIter2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">auto</span>
lexicographical_compare_three_way<span class="br0">(</span>InputIter1 b1, InputIter1 e1,
InputIter2 b2, InputIter2 e2<span class="br0">)</span><span class="sy4">;</span>
<span class="co1">// &#25490;&#21015;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> BidirectionalIter<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> next_permutation<span class="br0">(</span>BidirectionalIter first,
BidirectionalIter last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> BidirectionalIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> next_permutation<span class="br0">(</span>BidirectionalIter first,
BidirectionalIter last, Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I<span class="sy1">&gt;</span>
<span class="kw1">using</span> next_permutation_result <span class="sy1">=</span> in_found_result<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>bidirectional_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span>,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires sortable<span class="sy1">&lt;</span>I, Comp, Proj<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> next_permutation_result<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span>
next_permutation<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>bidirectional_range R, <span class="kw1">class</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span>,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires sortable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Comp, Proj<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> next_permutation_result<span class="sy1">&lt;</span>borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;&gt;</span>
next_permutation<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> BidirectionalIter<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> prev_permutation<span class="br0">(</span>BidirectionalIter first,
BidirectionalIter last<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> BidirectionalIter, <span class="kw1">class</span> Compare<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> prev_permutation<span class="br0">(</span>BidirectionalIter first,
BidirectionalIter last, Compare comp<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">namespace</span> ranges <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I<span class="sy1">&gt;</span>
<span class="kw1">using</span> prev_permutation_result <span class="sy1">=</span> in_found_result<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>bidirectional_iterator I, sentinel_for<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span> S, <span class="kw1">class</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span>,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires sortable<span class="sy1">&lt;</span>I, Comp, Proj<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> prev_permutation_result<span class="sy1">&lt;</span>I<span class="sy1">&gt;</span>
prev_permutation<span class="br0">(</span>I first, S last, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span>bidirectional_range R, <span class="kw1">class</span> Comp <span class="sy1">=</span> ranges<span class="sy4">::</span><span class="me2">less</span>,
<span class="kw1">class</span> Proj <span class="sy1">=</span> identity<span class="sy1">&gt;</span>
requires sortable<span class="sy1">&lt;</span>iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;</span>, Comp, Proj<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> prev_permutation_result<span class="sy1">&lt;</span>borrowed_iterator_t<span class="sy1">&lt;</span>R<span class="sy1">&gt;&gt;</span>
prev_permutation<span class="br0">(</span>R<span class="sy3">&amp;&amp;</span> r, Comp comp <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span>, Proj proj <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::ranges::in_fun_result">&#31867;&#27169;&#26495; <span class="t-lc">std::ranges::in_fun_result</span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std<span class="sy4">::</span><span class="me2">ranges</span> <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I, <span class="kw1">class</span> F<span class="sy1">&gt;</span>
<span class="kw1">struct</span> in_fun_result <span class="br0">{</span>
<span class="br0">[</span><span class="br0">[</span>no_unique_address<span class="br0">]</span><span class="br0">]</span> I in<span class="sy4">;</span>
<span class="br0">[</span><span class="br0">[</span>no_unique_address<span class="br0">]</span><span class="br0">]</span> F fun<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I2, <span class="kw1">class</span> F2<span class="sy1">&gt;</span>
requires convertible_to<span class="sy1">&lt;</span><span class="kw4">const</span> I<span class="sy3">&amp;</span>, I2<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span> convertible_to<span class="sy1">&lt;</span><span class="kw4">const</span> F<span class="sy3">&amp;</span>, F2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> operator in_fun_result<span class="sy1">&lt;</span>I2, F2<span class="sy1">&gt;</span><span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span> <span class="sy3">&amp;</span> <span class="br0">{</span>
<span class="kw1">return</span> <span class="br0">{</span>in, fun<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I2, <span class="kw1">class</span> F2<span class="sy1">&gt;</span>
requires convertible_to<span class="sy1">&lt;</span>I, I2<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span> convertible_to<span class="sy1">&lt;</span>F, F2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> operator in_fun_result<span class="sy1">&lt;</span>I2, F2<span class="sy1">&gt;</span><span class="br0">(</span><span class="br0">)</span> <span class="sy3">&amp;&amp;</span> <span class="br0">{</span>
<span class="kw1">return</span> <span class="br0">{</span>std<span class="sy4">::</span><span class="me2">move</span><span class="br0">(</span>in<span class="br0">)</span>, std<span class="sy4">::</span><span class="me2">move</span><span class="br0">(</span>fun<span class="br0">)</span><span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::ranges::in_in_result">&#31867;&#27169;&#26495; <span class="t-lc">std::ranges::in_in_result</span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std<span class="sy4">::</span><span class="me2">ranges</span> <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2<span class="sy1">&gt;</span>
<span class="kw1">struct</span> in_in_result <span class="br0">{</span>
<span class="br0">[</span><span class="br0">[</span>no_unique_address<span class="br0">]</span><span class="br0">]</span> I1 in1<span class="sy4">;</span>
<span class="br0">[</span><span class="br0">[</span>no_unique_address<span class="br0">]</span><span class="br0">]</span> I2 in2<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> II1, <span class="kw1">class</span> II2<span class="sy1">&gt;</span>
requires convertible_to<span class="sy1">&lt;</span><span class="kw4">const</span> I1<span class="sy3">&amp;</span>, II1<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span> convertible_to<span class="sy1">&lt;</span><span class="kw4">const</span> I2<span class="sy3">&amp;</span>, II2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> operator in_in_result<span class="sy1">&lt;</span>II1, II2<span class="sy1">&gt;</span><span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span> <span class="sy3">&amp;</span> <span class="br0">{</span>
<span class="kw1">return</span> <span class="br0">{</span>in1, in2<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> II1, <span class="kw1">class</span> II2<span class="sy1">&gt;</span>
requires convertible_to<span class="sy1">&lt;</span>I1, II1<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span> convertible_to<span class="sy1">&lt;</span>I2, II2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> operator in_in_result<span class="sy1">&lt;</span>II1, II2<span class="sy1">&gt;</span><span class="br0">(</span><span class="br0">)</span> <span class="sy3">&amp;&amp;</span> <span class="br0">{</span>
<span class="kw1">return</span> <span class="br0">{</span>std<span class="sy4">::</span><span class="me2">move</span><span class="br0">(</span>in1<span class="br0">)</span>, std<span class="sy4">::</span><span class="me2">move</span><span class="br0">(</span>in2<span class="br0">)</span><span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::ranges::in_out_result">&#31867;&#27169;&#26495; <span class="t-lc">std::ranges::in_out_result</span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std<span class="sy4">::</span><span class="me2">ranges</span> <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I, <span class="kw1">class</span> O<span class="sy1">&gt;</span>
<span class="kw1">struct</span> in_out_result <span class="br0">{</span>
<span class="br0">[</span><span class="br0">[</span>no_unique_address<span class="br0">]</span><span class="br0">]</span> I in<span class="sy4">;</span>
<span class="br0">[</span><span class="br0">[</span>no_unique_address<span class="br0">]</span><span class="br0">]</span> O out<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I2, <span class="kw1">class</span> O2<span class="sy1">&gt;</span>
requires convertible_to<span class="sy1">&lt;</span><span class="kw4">const</span> I<span class="sy3">&amp;</span>, I2<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span> convertible_to<span class="sy1">&lt;</span><span class="kw4">const</span> O<span class="sy3">&amp;</span>, O2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> operator in_out_result<span class="sy1">&lt;</span>I2, O2<span class="sy1">&gt;</span><span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span> <span class="sy3">&amp;</span> <span class="br0">{</span>
<span class="kw1">return</span> <span class="br0">{</span>in, out<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I2, <span class="kw1">class</span> O2<span class="sy1">&gt;</span>
requires convertible_to<span class="sy1">&lt;</span>I, I2<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span> convertible_to<span class="sy1">&lt;</span>O, O2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> operator in_out_result<span class="sy1">&lt;</span>I2, O2<span class="sy1">&gt;</span><span class="br0">(</span><span class="br0">)</span> <span class="sy3">&amp;&amp;</span> <span class="br0">{</span>
<span class="kw1">return</span> <span class="br0">{</span>std<span class="sy4">::</span><span class="me2">move</span><span class="br0">(</span>in<span class="br0">)</span>, std<span class="sy4">::</span><span class="me2">move</span><span class="br0">(</span>out<span class="br0">)</span><span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::ranges::in_in_out_result">&#31867;&#27169;&#26495; <span class="t-lc">std::ranges::in_in_out_result</span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std<span class="sy4">::</span><span class="me2">ranges</span> <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I1, <span class="kw1">class</span> I2, <span class="kw1">class</span> O<span class="sy1">&gt;</span>
<span class="kw1">struct</span> in_in_out_result <span class="br0">{</span>
<span class="br0">[</span><span class="br0">[</span>no_unique_address<span class="br0">]</span><span class="br0">]</span> I1 in1<span class="sy4">;</span>
<span class="br0">[</span><span class="br0">[</span>no_unique_address<span class="br0">]</span><span class="br0">]</span> I2 in2<span class="sy4">;</span>
<span class="br0">[</span><span class="br0">[</span>no_unique_address<span class="br0">]</span><span class="br0">]</span> O out<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> II1, <span class="kw1">class</span> II2, <span class="kw1">class</span> OO<span class="sy1">&gt;</span>
requires convertible_to<span class="sy1">&lt;</span><span class="kw4">const</span> I1<span class="sy3">&amp;</span>, II1<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
convertible_to<span class="sy1">&lt;</span><span class="kw4">const</span> I2<span class="sy3">&amp;</span>, II2<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
convertible_to<span class="sy1">&lt;</span><span class="kw4">const</span> O<span class="sy3">&amp;</span>, OO<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> operator in_in_out_result<span class="sy1">&lt;</span>II1, II2, OO<span class="sy1">&gt;</span><span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span> <span class="sy3">&amp;</span> <span class="br0">{</span>
<span class="kw1">return</span> <span class="br0">{</span>in1, in2, out<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> II1, <span class="kw1">class</span> II2, <span class="kw1">class</span> OO<span class="sy1">&gt;</span>
requires convertible_to<span class="sy1">&lt;</span>I1, II1<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
convertible_to<span class="sy1">&lt;</span>I2, II2<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
convertible_to<span class="sy1">&lt;</span>O, OO<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> operator in_in_out_result<span class="sy1">&lt;</span>II1, II2, OO<span class="sy1">&gt;</span><span class="br0">(</span><span class="br0">)</span> <span class="sy3">&amp;&amp;</span> <span class="br0">{</span>
<span class="kw1">return</span> <span class="br0">{</span>std<span class="sy4">::</span><span class="me2">move</span><span class="br0">(</span>in1<span class="br0">)</span>, std<span class="sy4">::</span><span class="me2">move</span><span class="br0">(</span>in2<span class="br0">)</span>, std<span class="sy4">::</span><span class="me2">move</span><span class="br0">(</span>out<span class="br0">)</span><span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::ranges::in_out_out_result">&#31867;&#27169;&#26495; <span class="t-lc">std::ranges::in_out_out_result</span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std<span class="sy4">::</span><span class="me2">ranges</span> <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I, <span class="kw1">class</span> O1, <span class="kw1">class</span> O2<span class="sy1">&gt;</span>
<span class="kw1">struct</span> in_out_out_result <span class="br0">{</span>
<span class="br0">[</span><span class="br0">[</span>no_unique_address<span class="br0">]</span><span class="br0">]</span> I in<span class="sy4">;</span>
<span class="br0">[</span><span class="br0">[</span>no_unique_address<span class="br0">]</span><span class="br0">]</span> O1 out1<span class="sy4">;</span>
<span class="br0">[</span><span class="br0">[</span>no_unique_address<span class="br0">]</span><span class="br0">]</span> O2 out2<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> II, <span class="kw1">class</span> OO1, <span class="kw1">class</span> OO2<span class="sy1">&gt;</span>
requires convertible_to<span class="sy1">&lt;</span><span class="kw4">const</span> I<span class="sy3">&amp;</span>, II<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
convertible_to<span class="sy1">&lt;</span><span class="kw4">const</span> O1<span class="sy3">&amp;</span>, OO1<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
convertible_to<span class="sy1">&lt;</span><span class="kw4">const</span> O2<span class="sy3">&amp;</span>, OO2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> operator in_out_out_result<span class="sy1">&lt;</span>II, OO1, OO2<span class="sy1">&gt;</span><span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span> <span class="sy3">&amp;</span> <span class="br0">{</span>
<span class="kw1">return</span> <span class="br0">{</span>in, out1, out2<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> II, <span class="kw1">class</span> OO1, <span class="kw1">class</span> OO2<span class="sy1">&gt;</span>
requires convertible_to<span class="sy1">&lt;</span>I, II<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
convertible_to<span class="sy1">&lt;</span>O1, OO1<span class="sy1">&gt;</span> <span class="sy3">&amp;&amp;</span>
convertible_to<span class="sy1">&lt;</span>O2, OO2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> operator in_out_out_result<span class="sy1">&lt;</span>II, OO1, OO2<span class="sy1">&gt;</span><span class="br0">(</span><span class="br0">)</span> <span class="sy3">&amp;&amp;</span> <span class="br0">{</span>
<span class="kw1">return</span> <span class="br0">{</span>std<span class="sy4">::</span><span class="me2">move</span><span class="br0">(</span>in<span class="br0">)</span>, std<span class="sy4">::</span><span class="me2">move</span><span class="br0">(</span>out1<span class="br0">)</span>, std<span class="sy4">::</span><span class="me2">move</span><span class="br0">(</span>out2<span class="br0">)</span><span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::ranges::min_max_result">&#31867;&#27169;&#26495; <span class="t-lc">std::ranges::min_max_result</span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std<span class="sy4">::</span><span class="me2">ranges</span> <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw1">struct</span> min_max_result <span class="br0">{</span>
<span class="br0">[</span><span class="br0">[</span>no_unique_address<span class="br0">]</span><span class="br0">]</span> T min<span class="sy4">;</span>
<span class="br0">[</span><span class="br0">[</span>no_unique_address<span class="br0">]</span><span class="br0">]</span> T max<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T2<span class="sy1">&gt;</span>
requires convertible_to<span class="sy1">&lt;</span><span class="kw4">const</span> T<span class="sy3">&amp;</span>, T2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> operator min_max_result<span class="sy1">&lt;</span>T2<span class="sy1">&gt;</span><span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span> <span class="sy3">&amp;</span> <span class="br0">{</span>
<span class="kw1">return</span> <span class="br0">{</span>min, max<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T2<span class="sy1">&gt;</span>
requires convertible_to<span class="sy1">&lt;</span>T, T2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> operator min_max_result<span class="sy1">&lt;</span>T2<span class="sy1">&gt;</span><span class="br0">(</span><span class="br0">)</span> <span class="sy3">&amp;&amp;</span> <span class="br0">{</span>
<span class="kw1">return</span> <span class="br0">{</span>std<span class="sy4">::</span><span class="me2">move</span><span class="br0">(</span>min<span class="br0">)</span>, std<span class="sy4">::</span><span class="me2">move</span><span class="br0">(</span>max<span class="br0">)</span><span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E7.B1.BB.E6.A8.A1.E6.9D.BF_std::ranges::in_found_result">&#31867;&#27169;&#26495; <span class="t-lc">std::ranges::in_found_result</span></span></h4>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std<span class="sy4">::</span><span class="me2">ranges</span> <span class="br0">{</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I<span class="sy1">&gt;</span>
<span class="kw1">struct</span> in_found_result <span class="br0">{</span>
<span class="br0">[</span><span class="br0">[</span>no_unique_address<span class="br0">]</span><span class="br0">]</span> I in<span class="sy4">;</span>
<span class="kw4">bool</span> found<span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I2<span class="sy1">&gt;</span>
requires convertible_to<span class="sy1">&lt;</span><span class="kw4">const</span> I<span class="sy3">&amp;</span>, I2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> operator in_found_result<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span><span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span> <span class="sy3">&amp;</span> <span class="br0">{</span>
<span class="kw1">return</span> <span class="br0">{</span>in, found<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> I2<span class="sy1">&gt;</span>
requires convertible_to<span class="sy1">&lt;</span>I, I2<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> operator in_found_result<span class="sy1">&lt;</span>I2<span class="sy1">&gt;</span><span class="br0">(</span><span class="br0">)</span> <span class="sy3">&amp;&amp;</span> <span class="br0">{</span>
<span class="kw1">return</span> <span class="br0">{</span>std<span class="sy4">::</span><span class="me2">move</span><span class="br0">(</span>in<span class="br0">)</span>, found<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
</div>
<div class="visualClear"></div>
</div>
</div>
</div>
</body>
</html>