328 lines
31 KiB
HTML
328 lines
31 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++ 具名要求:无序关联容器 (UnorderedAssociativeContainer)</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_named_req_UnorderedAssociativeContainer 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%">C++ 具名要求:</span><span style="font-style:italic">无序关联容器</span> <span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">(UnorderedAssociativeContainer)</span></h1>
|
|
<div id="bodyContent">
|
|
<div id="contentSub"><span class="subpages">< <a href="cpp.html">cpp</a>‎ | <a href="cpp-named_req.html">named req</a></span></div>
|
|
<div id="mw-content-text" lang="zh" dir="ltr" class="mw-content-ltr" xml:lang="zh">
|
|
<p><b>无序关联容器</b>是提供基于键的快速对象查找的<a href="cpp-named_req-Container.html"><span style="font-style:italic">容器</span> <span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">(Container)</span></a> 。最坏情况的复杂度为线性,但平均而言大多数操作则快得多。</p>
|
|
<p>无序关联容器基于以下各项参数化:<code><b>Key</b></code>;<code><b>Hash</b></code>,表现为 <code><b>Key</b></code> 上散列函数的<a href="cpp-named_req-Hash.html"><span style="font-style:italic">散列</span> <span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">(Hash)</span></a> 函数对象;<code><b>Pred</b></code>,评估 <code><b>Key</b></code> 间的等价性的<a href="cpp-named_req-BinaryPredicate.html"><span style="font-style:italic">二元谓词</span> <span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">(BinaryPredicate)</span></a> 。<span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-container-unordered_map.html"><span class="kw1293">std::<span class="me2">unordered_map</span></span></a></span></span> 与 <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-container-unordered_multimap.html"><span class="kw1295">std::<span class="me2">unordered_multimap</span></span></a></span></span> 也拥有与 <code><b>Key</b></code> 关联的被映射类型 <code><b>T</b></code>。</p>
|
|
<p>若两个 <code><b>Key</b></code> 按照 <code><b>Pred</b></code> 比较为相等,则 <code><b>Hash</b></code> 必须对两个键返回相同值。</p>
|
|
<table class="t-rev-begin">
|
|
<tr class="t-rev t-since-cxx20">
|
|
<td>
|
|
<p>若 <span class="t-c"><span class="mw-geshi cpp source-cpp">Hash<span class="sy4">::</span><span class="me2">is_transparent</span></span></span> 与 <span class="t-c"><span class="mw-geshi cpp source-cpp">Pred<span class="sy4">::</span><span class="me2">is_transparent</span></span></span> 均存在且各指名类型,则成员函数 <code>find</code> 、 <code>contains</code> 、 <code>count</code> 与 <code>equal_range</code> 接受异于 <code><b>Key</b></code> 的实参类型并期待 <code><b>Hash</b></code> 能以那些类型调用,而 <code><b>Pred</b></code> 是如 <span class="t-lc">std::equal_to<></span> 的通透比较函数。</p>
|
|
</td>
|
|
<td><span class="t-mark-rev t-since-cxx20">(C++20 起)</span></td>
|
|
</tr>
|
|
</table>
|
|
<p><span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-container-unordered_map.html"><span class="kw1293">std::<span class="me2">unordered_map</span></span></a></span></span> 与 <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-container-unordered_set.html"><span class="kw1289">std::<span class="me2">unordered_set</span></span></a></span></span> 能容纳至多一个带给定键的元素,而 <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-container-unordered_multiset.html"><span class="kw1291">std::<span class="me2">unordered_multiset</span></span></a></span></span> 与 <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-container-unordered_multimap.html"><span class="kw1295">std::<span class="me2">unordered_multimap</span></span></a></span></span> 能拥有带同一键的多个元素(它们在迭代时必然相邻)。</p>
|
|
<p>对于 <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-container-unordered_set.html"><span class="kw1289">std::<span class="me2">unordered_set</span></span></a></span></span> 和 <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-container-unordered_multiset.html"><span class="kw1291">std::<span class="me2">unordered_multiset</span></span></a></span></span>,其值类型与键类型相同,而 <span class="t-c"><span class="mw-geshi cpp source-cpp">iterator</span></span> 和 <span class="t-c"><span class="mw-geshi cpp source-cpp">const_iterator</span></span> 都是常量迭代器。对于 <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-container-unordered_map.html"><span class="kw1293">std::<span class="me2">unordered_map</span></span></a></span></span> 与 <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-container-unordered_multimap.html"><span class="kw1295">std::<span class="me2">unordered_multimap</span></span></a></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> Key, T<span class="sy1">></span></span></span>。</p>
|
|
<p>无序关联容器中的元素被组织到桶(bucket)中,拥有相同散列值的键将归于相同的桶中。桶数在容器大小增加时增加,以保持每个桶中的平均元素数在某个确定值之下。</p>
|
|
<p>重散列会使迭代器失效,并可能导致元素被重排到不同的桶中,但它不使元素的引用失效。</p>
|
|
<p>无序关联容器满足<a href="cpp-named_req-AllocatorAwareContainer.html"><span style="font-style:italic">知分配器容器</span> <span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">(AllocatorAwareContainer)</span></a> 的要求。对于 <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-container-unordered_map.html"><span class="kw1293">std::<span class="me2">unordered_map</span></span></a></span></span> 与 <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-container-unordered_multimap.html"><span class="kw1295">std::<span class="me2">unordered_multimap</span></span></a></span></span>,<a href="cpp-named_req-AllocatorAwareContainer.html"><span style="font-style:italic">知分配器容器</span> <span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">(AllocatorAwareContainer)</span></a> 中 <code>value_type</code> 的要求应用到 <code>key_type</code> 和 <code>mapped_type</code>(而非到 <code>value_type</code>)。</p>
|
|
<h3><span class="mw-headline" id=".E8.A6.81.E6.B1.82">要求</span></h3>
|
|
<table class="t-dsc-begin">
|
|
<tr>
|
|
<td colspan="2">
|
|
<h3><span class="mw-headline" id=".E5.87.A1.E4.BE.8B">凡例</span></h3>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td><code><b>X</b></code></td>
|
|
<td>容器类型</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td><code><b>a</b></code></td>
|
|
<td><code><b>X</b></code> 类型的对象</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td><code><b>b</b></code></td>
|
|
<td><code><b>X</b></code> 类型的 <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">const</span></span></span> 对象</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td><code><b>a_uniq</b></code></td>
|
|
<td>(当 <code><b>X</b></code> 支持唯一键时)<code><b>X</b></code> 中的对象</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td><code><b>a_eq</b></code></td>
|
|
<td>(当 <code><b>X</b></code> 支持多重键时)<code><b>X</b></code> 中的对象</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td><code><b>i</b></code>, <code><b>j</b></code></td>
|
|
<td>指代有效范围的<a href="cpp-named_req-InputIterator.html"><span style="font-style:italic">老式输入迭代器</span> <span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">(LegacyInputIterator)</span></a></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td><code><b>p</b></code>, <code><b>q2</b></code></td>
|
|
<td>指向 <code><b>a</b></code> 的有效 const_iterator</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td><code><b>q</b></code>, <code><b>q1</b></code></td>
|
|
<td>指向 <code><b>a</b></code> 的指代有效范围的可解引用 const_iterator</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td><code><b>il</b></code></td>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-utility-initializer_list.html"><span class="kw960">std::<span class="me2">initializer_list</span></span></a><span class="sy1"><</span>X<span class="sy4">::</span><span class="me2">value_type</span><span class="sy1">></span></span></span> 类型的对象</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td><code><b>t</b></code></td>
|
|
<td><code><b>X::value_type</b></code> 类型的对象</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td><code><b>k</b></code></td>
|
|
<td><code><b>X::key_type</b></code> 类型的对象</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td><code><b>hf</b></code></td>
|
|
<td><code><b>X::hasher</b></code> 类型的 <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">const</span></span></span> 对象</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td><code><b>eq</b></code></td>
|
|
<td><code><b>X::key_equal</b></code> 类型的 <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">const</span></span></span> 对象</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td><code><b>n</b></code></td>
|
|
<td><code><b>X::size_type</b></code> 类型的值</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td><code><b>z</b></code></td>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">float</span></span></span> 类型的值</td>
|
|
</tr>
|
|
</table>
|
|
<p><br /></p>
|
|
<table class="wikitable">
|
|
<tr>
|
|
<th>表达式</th>
|
|
<th>返回类型</th>
|
|
<th>前条件/要求</th>
|
|
<th>后条件/效果</th>
|
|
<th>复杂度</th>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">key_type</span></span></span></td>
|
|
<td><code><b>Key</b></code></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td>编译时</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">mapped_type</span></span></span></td>
|
|
<td><code><b>T</b></code></td>
|
|
<td>仅 <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-container-unordered_map.html"><span class="kw1293">std::<span class="me2">unordered_map</span></span></a></span></span> 与 <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-container-unordered_multimap.html"><span class="kw1295">std::<span class="me2">unordered_multimap</span></span></a></span></span></td>
|
|
<td></td>
|
|
<td>编译时</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">value_type</span></span></span></td>
|
|
<td><code><b>Key</b></code></td>
|
|
<td>仅 <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-container-unordered_set.html"><span class="kw1289">std::<span class="me2">unordered_set</span></span></a></span></span> 与 <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-container-unordered_multiset.html"><span class="kw1291">std::<span class="me2">unordered_multiset</span></span></a></span></span>。于 <code><b>X</b></code> <a href="cpp-named_req-Erasable.html"><span style="font-style:italic">可擦除</span> <span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">(Erasable)</span></a></td>
|
|
<td></td>
|
|
<td>编译时</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">value_type</span></span></span></td>
|
|
<td><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> Key, T<span class="sy1">></span></span></span></td>
|
|
<td>仅 <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-container-unordered_map.html"><span class="kw1293">std::<span class="me2">unordered_map</span></span></a></span></span> 与 <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-container-unordered_multimap.html"><span class="kw1295">std::<span class="me2">unordered_multimap</span></span></a></span></span>。于 <code><b>X</b></code> <a href="cpp-named_req-Erasable.html"><span style="font-style:italic">可擦除</span> <span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">(Erasable)</span></a></td>
|
|
<td></td>
|
|
<td>编译时</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">hasher</span></span></span></td>
|
|
<td><code><b>Hash</b></code></td>
|
|
<td><a href="cpp-named_req-Hash.html"><span style="font-style:italic">散列</span> <span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">(Hash)</span></a></td>
|
|
<td></td>
|
|
<td>编译时</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">key_equal</span></span></span></td>
|
|
<td><code><b>Pred</b></code></td>
|
|
<td>接收两个 <code><b>Key</b></code> 类型的实参并表达等价关系的<a href="cpp-named_req-BinaryPredicate.html"><span style="font-style:italic">二元谓词</span> <span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">(BinaryPredicate)</span></a> 。</td>
|
|
<td></td>
|
|
<td>编译时</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">local_iterator</span></span></span></td>
|
|
<td>类别和类型与 <code><b>X::iterator</b></code> 相同的<a href="cpp-named_req-Iterator.html"><span style="font-style:italic">老式迭代器</span> <span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">(LegacyIterator)</span></a></td>
|
|
<td></td>
|
|
<td>可用于在单个桶上迭代</td>
|
|
<td>编译时</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">const_local_iterator</span></span></span></td>
|
|
<td>类别和类型与 <code><b>X::const_iterator</b></code> 相同的<a href="cpp-named_req-Iterator.html"><span style="font-style:italic">老式迭代器</span> <span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">(LegacyIterator)</span></a></td>
|
|
<td></td>
|
|
<td>可用于在单个桶上迭代</td>
|
|
<td>编译时</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="br0">(</span>n,hf,eq<span class="br0">)</span></span></span></td>
|
|
<td><code><b>X</b></code></td>
|
|
<td><code><b>hasher</b></code> 与 <code><b>key_equal</b></code> <a href="cpp-named_req-CopyConstructible.html"><span style="font-style:italic">可复制构造</span> <span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">(CopyConstructible)</span></a></td>
|
|
<td>用给定的散列函数和相等谓词,构造至少有 <code><b>n</b></code> 个桶的空容器</td>
|
|
<td>与 <code><b>n</b></code> 成线性</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="br0">(</span>n,hf<span class="br0">)</span></span></span></td>
|
|
<td><code><b>X</b></code></td>
|
|
<td><code><b>hasher</b></code> <a href="cpp-named_req-CopyConstructible.html"><span style="font-style:italic">可复制构造</span> <span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">(CopyConstructible)</span></a> , <code><b>key_equal</b></code> <a href="cpp-named_req-DefaultConstructible.html"><span style="font-style:italic">可默认构造</span> <span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">(DefaultConstructible)</span></a></td>
|
|
<td>用给定的散列函数并以 <code><b>key_equal()</b></code> 为相等谓词,构造至少有 <code><b>n</b></code> 个桶的空容器</td>
|
|
<td>与 <code><b>n</b></code> 成线性</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="br0">(</span>n<span class="br0">)</span></span></span></td>
|
|
<td><code><b>X</b></code></td>
|
|
<td><code><b>hasher</b></code> 与 <code><b>key_equal</b></code> <a href="cpp-named_req-DefaultConstructible.html"><span style="font-style:italic">可默认构造</span> <span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">(DefaultConstructible)</span></a></td>
|
|
<td>以 <code><b>hasher()</b></code> 为散列函数并以 <code><b>key_equal()</b></code> 为相等谓词,构造至少有 <code><b>n</b></code> 个桶的空容器</td>
|
|
<td>与 <code><b>n</b></code> 成线性</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="br0">(</span><span class="br0">)</span></span></span></td>
|
|
<td><code><b>X</b></code></td>
|
|
<td><code><b>hasher</b></code> 与 <code><b>key_equal</b></code> <a href="cpp-named_req-DefaultConstructible.html"><span style="font-style:italic">可默认构造</span> <span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">(DefaultConstructible)</span></a></td>
|
|
<td>以 <code><b>hasher()</b></code> 为散列函数并以 <code><b>key_equal()</b></code> 为相等谓词,构造有未指定桶数的空容器</td>
|
|
<td>常数</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="br0">(</span>i,j,n,hf,eq<span class="br0">)</span></span></span></td>
|
|
<td><code><b>X</b></code></td>
|
|
<td><code><b>hasher</b></code> 与 <code><b>key_equal</b></code> <a href="cpp-named_req-CopyConstructible.html"><span style="font-style:italic">可复制构造</span> <span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">(CopyConstructible)</span></a> ,<code><b>value_type</b></code> 从 <code><b>*i</b></code> <a href="cpp-named_req-EmplaceConstructible.html"><span style="font-style:italic">可就位构造</span> <span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">(EmplaceConstructible)</span></a> 到 <code><b>X</b></code></td>
|
|
<td>用给定的散列函数和相等谓词,构造至少有 <code><b>n</b></code> 个桶的空容器,并插入来自 [i,j) 的元素到它。</td>
|
|
<td>平均为线性,最坏为(对 <code><b>i</b></code> 与 <code><b>j</b></code> 间的的距离的)平方</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="br0">(</span>i,j,n,hf<span class="br0">)</span></span></span></td>
|
|
<td><code><b>X</b></code></td>
|
|
<td><code><b>key_equal</b></code> <a href="cpp-named_req-DefaultConstructible.html"><span style="font-style:italic">可默认构造</span> <span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">(DefaultConstructible)</span></a></td>
|
|
<td>如上,有 <span class="t-c"><span class="mw-geshi cpp source-cpp">eq<span class="sy1">=</span>key_equal<span class="br0">(</span><span class="br0">)</span></span></span></td>
|
|
<td>同上</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="br0">(</span>i,j,n<span class="br0">)</span></span></span></td>
|
|
<td><code><b>X</b></code></td>
|
|
<td><code><b>hasher</b></code> <a href="cpp-named_req-DefaultConstructible.html"><span style="font-style:italic">可默认构造</span> <span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">(DefaultConstructible)</span></a></td>
|
|
<td>如上,有 <span class="t-c"><span class="mw-geshi cpp source-cpp">hf<span class="sy1">=</span>hasher<span class="br0">(</span><span class="br0">)</span></span></span></td>
|
|
<td>同上</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="br0">(</span>i,j<span class="br0">)</span></span></span></td>
|
|
<td><code><b>X</b></code></td>
|
|
<td></td>
|
|
<td>如上,拥有未指定的桶数</td>
|
|
<td>同上</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="br0">(</span>il<span class="br0">)</span></span></span></td>
|
|
<td><code><b>X</b></code></td>
|
|
<td></td>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="br0">(</span>il.<span class="me1">begin</span><span class="br0">(</span><span class="br0">)</span>,il.<span class="me1">end</span><span class="br0">(</span><span class="br0">)</span></span></span></td>
|
|
<td>同上</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="br0">(</span>il,n<span class="br0">)</span></span></span></td>
|
|
<td><code><b>X</b></code></td>
|
|
<td></td>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="br0">(</span>il.<span class="me1">begin</span><span class="br0">(</span><span class="br0">)</span>,il.<span class="me1">end</span><span class="br0">(</span><span class="br0">)</span>,n</span></span></td>
|
|
<td>同上</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="br0">(</span>il,n,hf<span class="br0">)</span></span></span></td>
|
|
<td><code><b>X</b></code></td>
|
|
<td></td>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="br0">(</span>il.<span class="me1">begin</span><span class="br0">(</span><span class="br0">)</span>,il.<span class="me1">end</span><span class="br0">(</span><span class="br0">)</span>,n,hf</span></span></td>
|
|
<td>同上</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="br0">(</span>il,n,hf,eq<span class="br0">)</span></span></span></td>
|
|
<td><code><b>X</b></code></td>
|
|
<td></td>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="br0">(</span>il.<span class="me1">begin</span><span class="br0">(</span><span class="br0">)</span>,il.<span class="me1">end</span><span class="br0">(</span><span class="br0">)</span>,n,hf,eq</span></span></td>
|
|
<td>同上</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="br0">(</span>b<span class="br0">)</span></span></span></td>
|
|
<td><code><b>X</b></code></td>
|
|
<td></td>
|
|
<td>复制构造函数,亦复制散列函数、谓词和最大加载因子</td>
|
|
<td>平均为线性,最坏为(对 <code><b>b.size()</b></code> 的)平方</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">a <span class="sy1">=</span> b</span></span></td>
|
|
<td><code><b>X&</b></code></td>
|
|
<td></td>
|
|
<td>复制赋值,亦复制散列函数、谓词和最大加载因子</td>
|
|
<td>平均为线性,最坏为(对 <code><b>b.size()</b></code> 的)平方</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">a <span class="sy1">=</span> il</span></span></td>
|
|
<td><code><b>X&</b></code></td>
|
|
<td><code><b>value_type</b></code> <a href="cpp-named_req-CopyAssignable.html"><span style="font-style:italic">可复制赋值</span> <span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">(CopyAssignable)</span></a> 且<a href="cpp-named_req-CopyInsertable.html"><span style="font-style:italic">可复制插入</span> <span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">(CopyInsertable)</span></a> 到 <code><b>X</b></code></td>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">a <span class="sy1">=</span> X<span class="br0">(</span>il<span class="br0">)</span></span></span></td>
|
|
<td>同上</td>
|
|
</tr>
|
|
</table>
|
|
<table class="metadata plainlinks ambox mbox-small-left ambox-notice" style="">
|
|
<tr>
|
|
<td class="mbox-empty-cell"></td>
|
|
<td class="mbox-text" style="">本节未完成<br />
|
|
原因:考虑成员函数的要求</td>
|
|
</tr>
|
|
</table>
|
|
<h3><span class="mw-headline" id=".E6.A0.87.E5.87.86.E5.BA.93.E4.B8.AD.E7.9A.84.E6.97.A0.E5.BA.8F.E5.85.B3.E8.81.94.E5.AE.B9.E5.99.A8">标准库中的无序关联容器</span></h3>
|
|
<table class="t-dsc-begin">
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-container-unordered_set.html"><span class="t-lines"><span>unordered_set</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>唯一键的集合,按照键生成散列<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-container-unordered_multiset.html"><span class="t-lines"><span>unordered_multiset</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>键的集合,按照键生成散列<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-container-unordered_map.html"><span class="t-lines"><span>unordered_map</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>键值对的集合,按照键生成散列,键是唯一的<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-container-unordered_multimap.html"><span class="t-lines"><span>unordered_multimap</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>键值对的集合,按照键生成散列<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="visualClear"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|