380 lines
26 KiB
HTML
380 lines
26 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>结点柄 (C++17)</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_container_node_handle skin-cppreference2 action-view cpp-navbar">
|
|
<div id="cpp-content-base">
|
|
<div id="content"><a id="top"></a>
|
|
<h1 id="firstHeading" class="firstHeading">结点柄 <span class="t-mark-rev t-since-cxx17">(C++17)</span></h1>
|
|
<div id="bodyContent">
|
|
<div id="contentSub"><span class="subpages">< <a href="cpp.html">cpp</a>‎ | <a href="cpp-container.html">container</a></span></div>
|
|
<div id="mw-content-text" lang="zh" dir="ltr" class="mw-content-ltr" xml:lang="zh">
|
|
<table class="t-dcl-begin">
|
|
<tbody>
|
|
<tr class="t-dcl t-since-cxx17">
|
|
<td>
|
|
<div><span class="mw-geshi cpp source-cpp"><span class="kw1">template</span><span class="sy1"><</span><span class="coMULTI">/*unspecified*/</span><span class="sy1">></span><br />
|
|
<span class="kw1">class</span> <span class="coMULTI">/*node-handle*/</span><span class="sy4">;</span></span></div>
|
|
</td>
|
|
<td class="t-dcl-nopad"></td>
|
|
<td><span class="t-mark-rev t-since-cxx17">(C++17 起)</span></td>
|
|
</tr>
|
|
<tr class="t-dcl-sep">
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p>关联容器 <span class="t-lc"><a href="cpp-container-set.html">std::set</a></span> 、 <span class="t-lc"><a href="cpp-container-map.html">std::map</a></span> 、 <span class="t-lc"><a href="cpp-container-multiset.html">std::multiset</a></span> 、 <span class="t-lc"><a href="cpp-container-multimap.html">std::multimap</a></span> 、 <span class="t-lc"><a href="cpp-container-unordered_set.html">std::unordered_set</a></span> 、 <span class="t-lc"><a href="cpp-container-unordered_map.html">std::unordered_map</a></span> 、 <span class="t-lc"><a href="cpp-container-unordered_multiset.html">std::unordered_multiset</a></span> 、 <span class="t-lc"><a href="cpp-container-unordered_multimap.html">std::unordered_multimap</a></span> 是基于结点的数据结构,而且可用称作<i>结点柄</i>的未指定类型的对象释出其结点。</p>
|
|
<p>结点柄是仅移动类型,它占有元素( <code>value_type</code> )并提供对元素的访问,并提供对元素键部分( <code>key_type</code> )和被映射部分( <code>mapped_type</code> )的非 const 访问。若结点柄在持有结点时析构它,则用容器的分配器正确地析构结点。结点柄含有容器分配器的副本,这是结点柄能在容器生存期外存在所必须的。</p>
|
|
<p>结点柄的准确类型(此处显示为 <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="coMULTI">/*node-handle*/</span></span></span> )是未指定的,但每个容器都暴露其结点柄类型为成员 <code>node_type</code> 。</p>
|
|
<p>结点柄能用于在二个有相同键、值和分配器类型(忽略比较或哈希/相等性)的关联容器间传递结点的所有权,而无需调用任何容器元素上的复制/移动操作(这种操作被称为“接合”)。在唯一和非唯一容器间传递也是容许的:来自 <span class="t-lc"><a href="cpp-container-map.html">std::map</a></span> 的结点柄能插入 <span class="t-lc"><a href="cpp-container-multimap.html">std::multimap</a></span> ,但不能插入 <span class="t-lc"><a href="cpp-container-unordered_map.html">std::unordered_map</a></span> 或 <span class="t-lc"><a href="cpp-container-set.html">std::set</a></span> 。</p>
|
|
<p>结点柄可以为空,该情况下它不保有元素和分配器。默认构造和被移动的结点柄是空的。另外,空的结点柄可由对容器成员函数 <code>extract</code> 的失败调用产生。</p>
|
|
<p>若成功将元素插入容器,则为结点柄所占有时获得的到该元素的引用或指针会被非法化。</p>
|
|
<p>对于所有 <code>key_type</code> 为 <code>K</code> 而 <code>mapped_type</code> 为 <code>T</code> 的映射容器( <span class="t-lc"><a href="cpp-container-map.html">std::map</a></span> 、 <span class="t-lc"><a href="cpp-container-multimap.html">std::multimap</a></span> 、 <span class="t-lc"><a href="cpp-container-unordered_map.html">std::unordered_map</a></span> 及 <span class="t-lc"><a href="cpp-container-unordered_multimap.html">std::unordered_multimap</a></span> ),若对 <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-utility-pair.html"><span class="kw1096">std::<span class="me2">pair</span></span></a><span class="sy1"><</span>K, T<span class="sy1">></span></span></span> 或 <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-utility-pair.html"><span class="kw1096">std::<span class="me2">pair</span></span></a><span class="sy1"><</span><span class="kw4">const</span> K, T<span class="sy1">></span></span></span> 存在 <span class="t-lc"><a href="cpp-utility-pair.html">std::pair</a></span> 的用户定义特化,则涉及结点柄的操作行为未定义。</p>
|
|
<h3><span class="mw-headline" id=".E6.88.90.E5.91.98.E7.B1.BB.E5.9E.8B">成员类型</span></h3>
|
|
<table class="t-dsc-begin">
|
|
<tr class="t-dsc-hitem">
|
|
<td>成员类型</td>
|
|
<td>定义</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td><code>key_type</code><span class="t-mark">(仅 map 容器)</span></td>
|
|
<td>存储于结点的关键</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td><code>mapped_type</code><span class="t-mark">(仅 map 容器)</span></td>
|
|
<td>存储于结点的元素的被映射部分</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td><code>value_type</code><span class="t-mark">(仅 set 容器)</span></td>
|
|
<td>存储于结点的元素</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td><code>allocator_type</code></td>
|
|
<td>销毁元素时使用的分配器</td>
|
|
</tr>
|
|
</table>
|
|
<h3><span class="mw-headline" id=".E6.88.90.E5.91.98.E5.87.BD.E6.95.B0">成员函数</span></h3>
|
|
<div class="t-member">
|
|
<h2><span class="mw-headline" id=".E6.9E.84.E9.80.A0.E5.87.BD.E6.95.B0">构造函数</span></h2>
|
|
<table class="t-dcl-begin">
|
|
<tbody>
|
|
<tr class="t-dcl">
|
|
<td>
|
|
<div><span class="mw-geshi cpp source-cpp"><span class="kw4">constexpr</span> <span class="coMULTI">/*node-handle*/</span><span class="br0">(</span><span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span></span></div>
|
|
</td>
|
|
<td>(1)</td>
|
|
<td class="t-dcl-nopad"></td>
|
|
</tr>
|
|
<tr class="t-dcl">
|
|
<td>
|
|
<div><span class="mw-geshi cpp source-cpp"><span class="coMULTI">/*node-handle*/</span><span class="br0">(</span><span class="coMULTI">/*node-handle*/</span><span class="sy3">&&</span> nh<span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span></span></div>
|
|
</td>
|
|
<td>(2)</td>
|
|
<td class="t-dcl-nopad"></td>
|
|
</tr>
|
|
<tr class="t-dcl-sep">
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<div class="t-li1"><span class="t-li">1)</span> 默认构造函数初始化结点柄为空状态。</div>
|
|
<div class="t-li1"><span class="t-li">2)</span> 移动构造函数从 <code>nh</code> 取走容器元素所有权,移动构造成员分配器,并令 <code>nh</code> 留在空状态。</div>
|
|
<h3><span class="mw-headline" id=".E5.8F.82.E6.95.B0">参数</span></h3>
|
|
<table class="t-par-begin">
|
|
<tr class="t-par">
|
|
<td>nh</td>
|
|
<td>-</td>
|
|
<td>同类型的结点柄(不必属于相同容器)</td>
|
|
</tr>
|
|
</table>
|
|
<h3><span class="mw-headline" id=".E6.B3.A8.E8.A7.A3">注解</span></h3>
|
|
<p>结点柄是仅移动的,不定义复制构造函数。</p>
|
|
</div>
|
|
<div class="t-member">
|
|
<h2><span class="mw-headline" id="operator.3D">operator=</span></h2>
|
|
<table class="t-dcl-begin">
|
|
<tbody>
|
|
<tr class="t-dcl">
|
|
<td class="t-dcl-nopad">
|
|
<div><span class="mw-geshi cpp source-cpp"><span class="coMULTI">/*node-handle*/</span><span class="sy3">&</span> operator<span class="sy1">=</span><span class="br0">(</span><span class="coMULTI">/*node-handle*/</span><span class="sy3">&&</span> nh<span class="br0">)</span><span class="sy4">;</span></span></div>
|
|
</td>
|
|
<td class="t-dcl-nopad"></td>
|
|
<td class="t-dcl-nopad"></td>
|
|
</tr>
|
|
<tr class="t-dcl-sep">
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<ul>
|
|
<li>若结点柄非空,</li>
|
|
</ul>
|
|
<dl>
|
|
<dd>
|
|
<ul>
|
|
<li>则通过调用 <code>std::allocator_traits<allocator_type>::destroy</code> ,销毁此结点柄所管理的容器元素对象中的 <code>value_type</code> 子对象;</li>
|
|
<li>通过调用 <code>allocator_traits<allocator_type>::rebind_traits<container-node-type>::deallocate</code> 解分配容器元素;</li>
|
|
</ul>
|
|
</dd>
|
|
</dl>
|
|
<ul>
|
|
<li>从 <code>nh</code> 获得容器元素的所有权;</li>
|
|
<li>若结点柄为空(从而不含分配器)或若 <code>allocator_traits<allocator_type>::propagate_on_container_move_assignment</code> 为 <code>true</code> ,则从 <code>nh</code> 移动赋值分配器;</li>
|
|
<li>设置 <code>nh</code> 为空状态。</li>
|
|
</ul>
|
|
<p>若结点非空且 <code>allocator_traits<allocator_type>::propagate_on_container_move_assignment</code> 为 <code>false</code> 且分配器比较不相等,则行为未定义。</p>
|
|
<h3><span class="mw-headline" id=".E5.8F.82.E6.95.B0_2">参数</span></h3>
|
|
<table class="t-par-begin">
|
|
<tr class="t-par">
|
|
<td>nh</td>
|
|
<td>-</td>
|
|
<td>同类型的结点柄(不必属于相同容器)</td>
|
|
</tr>
|
|
</table>
|
|
<h3><span class="mw-headline" id=".E8.BF.94.E5.9B.9E">返回</span></h3>
|
|
<p><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy2">*</span>this</span></span></p>
|
|
<h3><span class="mw-headline" id=".E5.BC.82.E5.B8.B8">异常</span></h3>
|
|
<p>不抛出。</p>
|
|
<h3><span class="mw-headline" id=".E6.B3.A8.E8.A7.A3_2">注解</span></h3>
|
|
<p>结点柄是仅移动的,不定义复制赋值。</p>
|
|
</div>
|
|
<div class="t-member">
|
|
<h2><span class="mw-headline" id=".E6.9E.90.E6.9E.84.E5.87.BD.E6.95.B0">析构函数</span></h2>
|
|
<table class="t-dcl-begin">
|
|
<tbody>
|
|
<tr class="t-dcl">
|
|
<td class="t-dcl-nopad">
|
|
<div><span class="mw-geshi cpp source-cpp">~<span class="coMULTI">/*node-handle*/</span><span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span></span></div>
|
|
</td>
|
|
<td class="t-dcl-nopad"></td>
|
|
<td class="t-dcl-nopad"></td>
|
|
</tr>
|
|
<tr class="t-dcl-sep">
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<ul>
|
|
<li>若结点柄非空,</li>
|
|
</ul>
|
|
<dl>
|
|
<dd>
|
|
<ul>
|
|
<li>则通过调用 <code>std::allocator_traits<allocator_type>::destroy</code> ,销毁此结点柄所管理的容器元素对象中的 <code>value_type</code> 子对象;</li>
|
|
<li>通过调用 <code>allocator_traits<allocator_type>::rebind_traits<container-node-type>::deallocate</code> 解分配容器元素。</li>
|
|
</ul>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="t-member">
|
|
<h2><span class="mw-headline" id="empty">empty</span></h2>
|
|
<table class="t-dcl-begin">
|
|
<tbody></tbody>
|
|
<tbody class="t-dcl-rev">
|
|
<tr class="t-dcl t-until-cxx20">
|
|
<td>
|
|
<div><span class="mw-geshi cpp source-cpp"><span class="kw4">bool</span> empty<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span> <span class="kw1">noexcept</span><span class="sy4">;</span></span></div>
|
|
</td>
|
|
<td class="t-dcl-nopad"></td>
|
|
<td><span class="t-mark-rev t-until-cxx20">(C++20 前)</span></td>
|
|
</tr>
|
|
<tr class="t-dcl t-since-cxx20">
|
|
<td>
|
|
<div><span class="mw-geshi cpp source-cpp"><span class="br0">[</span><span class="br0">[</span>nodiscard<span class="br0">]</span><span class="br0">]</span> <span class="kw4">bool</span> empty<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span> <span class="kw1">noexcept</span><span class="sy4">;</span></span></div>
|
|
</td>
|
|
<td class="t-dcl-nopad"></td>
|
|
<td><span class="t-mark-rev t-since-cxx20">(C++20 起)</span></td>
|
|
</tr>
|
|
</tbody>
|
|
<tbody>
|
|
<tr class="t-dcl-sep">
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p>若结点柄为空则返回 <code>true</code> ,否则返回 <code>false</code> 。</p>
|
|
</div>
|
|
<div class="t-member">
|
|
<h2><span class="mw-headline" id="operator_bool">operator bool</span></h2>
|
|
<table class="t-dcl-begin">
|
|
<tbody>
|
|
<tr class="t-dcl">
|
|
<td class="t-dcl-nopad">
|
|
<div><span class="mw-geshi cpp source-cpp"><span class="kw1">explicit</span> operator <span class="kw4">bool</span><span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span> <span class="kw1">noexcept</span><span class="sy4">;</span></span></div>
|
|
</td>
|
|
<td class="t-dcl-nopad"></td>
|
|
<td class="t-dcl-nopad"></td>
|
|
</tr>
|
|
<tr class="t-dcl-sep">
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p>若结点柄为空则转换为 <code>false</code> ,否则返回 <code>true</code> 。</p>
|
|
</div>
|
|
<div class="t-member">
|
|
<h2><span class="mw-headline" id="get_allocator">get_allocator</span></h2>
|
|
<table class="t-dcl-begin">
|
|
<tbody>
|
|
<tr class="t-dcl">
|
|
<td class="t-dcl-nopad">
|
|
<div><span class="mw-geshi cpp source-cpp">allocator_type get_allocator<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span></span></div>
|
|
</td>
|
|
<td class="t-dcl-nopad"></td>
|
|
<td class="t-dcl-nopad"></td>
|
|
</tr>
|
|
<tr class="t-dcl-sep">
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p>返回存储的分配器(它是源容器的分配器副本)的副本。若结点柄为空则行为未定义。</p>
|
|
<h3><span class="mw-headline" id=".E5.BC.82.E5.B8.B8_2">异常</span></h3>
|
|
<p>不抛出。</p>
|
|
</div>
|
|
<div class="t-member">
|
|
<h2><span class="mw-headline" id="value">value</span></h2>
|
|
<table class="t-dcl-begin">
|
|
<tbody>
|
|
<tr class="t-dcl">
|
|
<td>
|
|
<div><span class="mw-geshi cpp source-cpp">value_type<span class="sy3">&</span> value<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span></span></div>
|
|
</td>
|
|
<td class="t-dcl-nopad"></td>
|
|
<td><span class="t-mark">(仅 set 容器)</span></td>
|
|
</tr>
|
|
<tr class="t-dcl-sep">
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p>返回到此结点柄所管理的容器元素对象中的 <code>value_type</code> 子对象的引用。若结点柄为空则行为未定义。</p>
|
|
<h3><span class="mw-headline" id=".E5.BC.82.E5.B8.B8_3">异常</span></h3>
|
|
<p>不抛出。</p>
|
|
</div>
|
|
<div class="t-member">
|
|
<h2><span class="mw-headline" id="key">key</span></h2>
|
|
<table class="t-dcl-begin">
|
|
<tbody>
|
|
<tr class="t-dcl">
|
|
<td>
|
|
<div><span class="mw-geshi cpp source-cpp">key_type<span class="sy3">&</span> key<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span></span></div>
|
|
</td>
|
|
<td class="t-dcl-nopad"></td>
|
|
<td><span class="t-mark">(仅 map 容器)</span></td>
|
|
</tr>
|
|
<tr class="t-dcl-sep">
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p>返回到此结点柄所管理的容器元素对象中的 <code>value_type</code> 子对象的 <code>key_type</code> 成员的非 const 引用。若结点柄为空则行为未定义。</p>
|
|
<h3><span class="mw-headline" id=".E5.BC.82.E5.B8.B8_4">异常</span></h3>
|
|
<p>不抛出。</p>
|
|
<h3><span class="mw-headline" id=".E6.B3.A8.E8.A7.A3_3">注解</span></h3>
|
|
<p>此函数使得能够修改从映射释出的结点的键,再重插入到映射,而无需复制或移动元素。</p>
|
|
</div>
|
|
<div class="t-member">
|
|
<h2><span class="mw-headline" id="mapped">mapped</span></h2>
|
|
<table class="t-dcl-begin">
|
|
<tbody>
|
|
<tr class="t-dcl">
|
|
<td>
|
|
<div><span class="mw-geshi cpp source-cpp">mapped_type<span class="sy3">&</span> mapped<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span></span></div>
|
|
</td>
|
|
<td class="t-dcl-nopad"></td>
|
|
<td><span class="t-mark">(仅 map 容器)</span></td>
|
|
</tr>
|
|
<tr class="t-dcl-sep">
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p>返回到此结点柄所管理的容器元素对象中的 <code>value_type</code> 子对象的 <code>mapped_type</code> 成员的引用。若结点柄为空则行为未定义。</p>
|
|
<h3><span class="mw-headline" id=".E5.BC.82.E5.B8.B8_5">异常</span></h3>
|
|
<p>不抛出。</p>
|
|
</div>
|
|
<div class="t-member">
|
|
<h2><span class="mw-headline" id="swap">swap</span></h2>
|
|
<table class="t-dcl-begin">
|
|
<tbody>
|
|
<tr class="t-dcl">
|
|
<td class="t-dcl-nopad">
|
|
<div><span class="mw-geshi cpp source-cpp"><span class="kw4">void</span> swap<span class="br0">(</span><span class="coMULTI">/*node-handle*/</span><span class="sy3">&</span> nh<span class="br0">)</span> <span class="kw1">noexcept</span><span class="br0">(</span><span class="coMULTI">/* see below */</span><span class="br0">)</span><span class="sy4">;</span></span></div>
|
|
</td>
|
|
<td class="t-dcl-nopad"></td>
|
|
<td class="t-dcl-nopad"></td>
|
|
</tr>
|
|
<tr class="t-dcl-sep">
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<ul>
|
|
<li>交换容器结点的所有权;</li>
|
|
<li>若一个结点为空或两个结点均为非空且 <code>std::allocator_traits<allocator_type>::propagate_on_container_swap</code> 为 <code>true</code> ,则一同交换分配器。</li>
|
|
</ul>
|
|
<p>若两个结点均为非空且 <code>allocator_traits<allocator_type>::propagate_on_container_swap</code> 为 <code>false</code> 而分配器比较不相等,则行为未定义。</p>
|
|
<h3><span class="mw-headline" id=".E5.BC.82.E5.B8.B8_6">异常</span></h3>
|
|
<div class="t-noexcept-full"><a href="cpp-language-noexcept_spec.html"><tt>noexcept</tt></a> 说明:
|
|
<div class="t-noexcept-box"><span class="t-cc"><span class="mw-geshi cpp source-cpp"><span class="kw1">noexcept</span><span class="br0">(</span><a href="cpp-memory-allocator_traits.html"><span class="kw701">std::<span class="me2">allocator_traits</span></span></a><span class="sy1"><</span>allocator_type<span class="sy1">></span><span class="sy4">::</span><span class="me2">propagate_on_container_swap</span><span class="sy4">::</span><span class="me2">value</span> <span class="sy3">||</span><br />
|
|
<a href="cpp-memory-allocator_traits.html"><span class="kw701">std::<span class="me2">allocator_traits</span></span></a><span class="sy1"><</span>allocator_type<span class="sy1">></span><span class="sy4">::</span><span class="me2">is_always_equal</span><span class="sy4">::</span><span class="me2">value</span><span class="br0">)</span></span></span></div>
|
|
</div>
|
|
</div>
|
|
<h3><span class="mw-headline" id=".E9.9D.9E.E6.88.90.E5.91.98.E5.87.BD.E6.95.B0">非成员函数</span></h3>
|
|
<div class="t-member">
|
|
<h2><span class="mw-headline" id="swap_2">swap</span></h2>
|
|
<table class="t-dcl-begin">
|
|
<tbody>
|
|
<tr class="t-dcl">
|
|
<td class="t-dcl-nopad">
|
|
<div><span class="mw-geshi cpp source-cpp"><span class="kw1">friend</span> <span class="kw4">void</span> swap<span class="br0">(</span><span class="coMULTI">/*node-handle*/</span><span class="sy3">&</span> x, <span class="coMULTI">/*node-handle*/</span><span class="sy3">&</span> y<span class="br0">)</span> <span class="kw1">noexcept</span><span class="br0">(</span><span class="kw1">noexcept</span><span class="br0">(</span>x.<span class="me1">swap</span><span class="br0">(</span>y<span class="br0">)</span><span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span></span></div>
|
|
</td>
|
|
<td class="t-dcl-nopad"></td>
|
|
<td class="t-dcl-nopad"></td>
|
|
</tr>
|
|
<tr class="t-dcl-sep">
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p>等效地执行 <span class="t-c"><span class="mw-geshi cpp source-cpp">x.<span class="me1">swap</span><span class="br0">(</span>y<span class="br0">)</span></span></span> 。</p>
|
|
<p>此函数对通常<a href="cpp-language-unqualified_lookup.html">无限定</a>或<a href="cpp-language-qualified_lookup.html">有限定查找</a>不可见,而只能在 <code><i>node-handle</i></code> 为参数的关联类时由<a href="cpp-language-adl.html">实参依赖查找</a>找到。</p>
|
|
</div>
|
|
</div>
|
|
<div class="visualClear"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|