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

572 lines
60 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++ &#20855;&#21517;&#35201;&#27714;&#65306;&#20998;&#37197;&#22120; (Allocator)</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_Allocator 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++ &#20855;&#21517;&#35201;&#27714;&#65306;</span><span style="font-style:italic">&#20998;&#37197;&#22120;</span> <span style="font-family: Georgia, &#39;DejaVu Serif&#39;, serif; font-style:italic">(Allocator)</span></h1>
<div id="bodyContent">
<div id="contentSub"><span class="subpages">&lt; <a href="cpp.html">cpp</a>&lrm; | <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>&#23553;&#35013;&#35775;&#38382;/&#23547;&#22336;&#65292;&#20998;&#37197;/&#35299;&#20998;&#37197;&#65292;&#20197;&#21450;&#23545;&#35937;&#30340;&#26500;&#36896;/&#26512;&#26500;&#30340;&#31574;&#30053;&#12290;</p>
<p>&#21487;&#33021;&#38656;&#35201;&#20998;&#37197;&#25110;&#37322;&#25918;&#20869;&#23384;&#30340;&#27599;&#20010;&#26631;&#20934;&#24211;&#32452;&#20214;&#65292;&#20174; <code>std::string</code>&#12289;<code>std::vector</code> &#21644;&#38500; <code>std::array</code> &#20197;&#22806;&#30340;&#25152;&#26377;&#23481;&#22120;&#65292;&#21040; <code>std::shared_ptr</code> &#21644; <code>std::function</code>&#65292;&#37117;&#36890;&#36807;<span style="font-style:italic">&#20998;&#37197;&#22120;</span> <span style="font-family: Georgia, &#39;DejaVu Serif&#39;, serif; font-style:italic">(Allocator)</span> &#36827;&#34892;&#36825;&#20123;&#25805;&#20316;&#65306;&#20998;&#37197;&#22120;&#26159;&#28385;&#36275;&#19979;&#21015;&#35201;&#27714;&#30340;&#31867;&#31867;&#22411;&#23545;&#35937;&#12290;</p>
<p>&#35768;&#22810;&#20998;&#37197;&#22120;&#35201;&#27714;&#30340;&#23454;&#29616;&#26159;&#21487;&#36873;&#30340;&#65292;&#22240;&#20026;&#25152;&#26377;&#30693;&#20998;&#37197;&#22120;&#31867;&#65292;&#21253;&#25324;&#26631;&#20934;&#24211;&#23481;&#22120;&#65292;&#37117;&#36890;&#36807; <code>std::allocator_traits</code> &#35775;&#38382;&#20998;&#37197;&#22120;&#65292;&#32780; <span class="t-lc"><a href="cpp-memory-allocator_traits.html">std::allocator_traits</a></span> &#25552;&#20379;&#36825;&#20123;&#35201;&#27714;&#30340;&#40664;&#35748;&#23454;&#29616;&#12290;</p>
<h3><span class="mw-headline" id=".E8.A6.81.E6.B1.82">&#35201;&#27714;</span></h3>
<p>&#32473;&#23450;</p>
<ul>
<li><code>T</code> &#65292;&#26080; cv &#38480;&#23450;&#30340;&#23545;&#35937;&#31867;&#22411;</li>
<li><code>A</code> &#65292; <code>T</code> &#31867;&#22411;&#30340;<span style="font-style:italic">&#20998;&#37197;&#22120;</span> <span style="font-family: Georgia, &#39;DejaVu Serif&#39;, serif; font-style:italic">(Allocator)</span> &#31867;&#22411;</li>
<li><code>a</code> &#65292; <code>A</code> &#31867;&#22411;&#23545;&#35937;</li>
<li><code>B</code> &#65292;&#26576;&#26080; cv &#38480;&#23450;&#30340;&#23545;&#35937;&#31867;&#22411; <code>U</code> &#30340;&#23545;&#24212;<span style="font-style:italic">&#20998;&#37197;&#22120;</span> <span style="font-family: Georgia, &#39;DejaVu Serif&#39;, serif; font-style:italic">(Allocator)</span> &#31867;&#22411;&#65288;&#30001;&#37325;&#32465;&#23450; <code>A</code> &#33719;&#24471;&#65289;</li>
<li><code>b</code> &#65292; <code>B</code> &#31867;&#22411;&#23545;&#35937;</li>
<li><code>p</code> &#65292; <code>allocator_traits&lt;A&gt;::pointer</code> &#31867;&#22411;&#20540;&#65292;&#30001;&#35843;&#29992; <span class="t-c"><span class="mw-geshi cpp source-cpp">allocator_traits<span class="sy1">&lt;</span>A<span class="sy1">&gt;</span><span class="sy4">::</span><span class="me2">allocate</span><span class="br0">(</span><span class="br0">)</span></span></span> &#33719;&#24471;</li>
<li><code>cp</code> &#65292; <code>allocator_traits&lt;A&gt;::const_pointer</code> &#31867;&#22411;&#20540;&#65292;&#30001;&#20174; <code>p</code> &#36716;&#25442;&#33719;&#24471;</li>
<li><code>vp</code> &#65292; <code>allocator_traits&lt;A&gt;::void_pointer</code> &#31867;&#22411;&#20540;&#65292;&#30001;&#20174; <code>p</code> &#36716;&#25442;&#33719;&#24471;</li>
<li><code>cvp</code> &#65292; <code>allocator_traits&lt;A&gt;::const_void_pointer</code> &#31867;&#22411;&#20540;&#65292;&#30001;&#20174; <code>cp</code> &#25110;&#20174; <code>vp</code> &#36716;&#25442;&#33719;&#24471;</li>
<li><code>xp</code> &#65292;&#25351;&#21521;&#26576;&#26080; cv &#38480;&#23450;&#31867;&#22411; <code>X</code> &#30340;&#21487;&#35299;&#24341;&#29992;&#30340;&#25351;&#38024;</li>
<li><code>r</code> &#65292;&#30001;&#34920;&#36798;&#24335; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy2">*</span>p</span></span> &#33719;&#24471;&#30340; <code>T</code> &#31867;&#22411;&#24038;&#20540;</li>
<li><code>n</code> &#65292; <code>allocator_traits&lt;A&gt;::size_type</code> &#31867;&#22411;&#20540;</li>
</ul>
<table class="wikitable">
<caption>&#20869;&#37096;&#31867;&#22411;</caption>
<tr>
<th>&#31867;&#22411;&#26631;&#35782;</th>
<th>&#21035;&#21517;&#20351;&#29992;&#30340;&#31867;&#22411;</th>
<th>&#35201;&#27714;</th>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">A<span class="sy4">::</span><span class="me2">pointer</span></span></span> <span class="t-mark">(&#21487;&#36873;)</span></td>
<td><i>&#65288;&#26410;&#25351;&#26126;&#65289;</i><sup id="cite_ref-1" class="reference"><a href="cpp-named_req-Allocator.html#cite_note-1">[1]</a></sup></td>
<td>
<ul>
<li>&#28385;&#36275;<a href="cpp-named_req-NullablePointer.html"><span style="font-style:italic">&#21487;&#31354;&#25351;&#38024;</span> <span style="font-family: Georgia, &#39;DejaVu Serif&#39;, serif; font-style:italic">(NullablePointer)</span></a> &#12289;<a href="cpp-named_req-RandomAccessIterator.html"><span style="font-style:italic">&#32769;&#24335;&#38543;&#26426;&#35775;&#38382;&#36845;&#20195;&#22120;</span> <span style="font-family: Georgia, &#39;DejaVu Serif&#39;, serif; font-style:italic">(LegacyRandomAccessIterator)</span></a> &#21450;<a href="cpp-named_req-ContiguousIterator.html"><span style="font-style:italic">&#32769;&#24335;&#36830;&#32493;&#36845;&#20195;&#22120;</span> <span style="font-family: Georgia, &#39;DejaVu Serif&#39;, serif; font-style:italic">(LegacyContiguousIterator)</span></a> &#12290;</li>
</ul>
</td>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">A<span class="sy4">::</span><span class="me2">const_pointer</span></span></span> <span class="t-mark">(&#21487;&#36873;)</span></td>
<td><i>&#65288;&#26410;&#25351;&#26126;&#65289;</i></td>
<td>
<ul>
<li>&#28385;&#36275;<a href="cpp-named_req-NullablePointer.html"><span style="font-style:italic">&#21487;&#31354;&#25351;&#38024;</span> <span style="font-family: Georgia, &#39;DejaVu Serif&#39;, serif; font-style:italic">(NullablePointer)</span></a> &#12289;<a href="cpp-named_req-RandomAccessIterator.html"><span style="font-style:italic">&#32769;&#24335;&#38543;&#26426;&#35775;&#38382;&#36845;&#20195;&#22120;</span> <span style="font-family: Georgia, &#39;DejaVu Serif&#39;, serif; font-style:italic">(LegacyRandomAccessIterator)</span></a> &#21450;<a href="cpp-named_req-ContiguousIterator.html"><span style="font-style:italic">&#32769;&#24335;&#36830;&#32493;&#36845;&#20195;&#22120;</span> <span style="font-family: Georgia, &#39;DejaVu Serif&#39;, serif; font-style:italic">(LegacyContiguousIterator)</span></a> &#12290;</li>
<li><span class="t-c"><span class="mw-geshi cpp source-cpp">A<span class="sy4">::</span><span class="me2">pointer</span></span></span> &#21487;&#36716;&#25442;&#20026; <span class="t-c"><span class="mw-geshi cpp source-cpp">A<span class="sy4">::</span><span class="me2">const_pointer</span></span></span> &#12290;</li>
</ul>
</td>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">A<span class="sy4">::</span><span class="me2">void_pointer</span></span></span> <span class="t-mark">(&#21487;&#36873;)</span></td>
<td><i>&#65288;&#26410;&#25351;&#26126;&#65289;</i></td>
<td>
<ul>
<li>&#28385;&#36275;<a href="cpp-named_req-NullablePointer.html"><span style="font-style:italic">&#21487;&#31354;&#25351;&#38024;</span> <span style="font-family: Georgia, &#39;DejaVu Serif&#39;, serif; font-style:italic">(NullablePointer)</span></a> &#12290;</li>
<li><span class="t-c"><span class="mw-geshi cpp source-cpp">A<span class="sy4">::</span><span class="me2">pointer</span></span></span> &#21487;&#36716;&#25442;&#20026; <span class="t-c"><span class="mw-geshi cpp source-cpp">A<span class="sy4">::</span><span class="me2">void_pointer</span></span></span> &#12290;</li>
<li><span class="t-c"><span class="mw-geshi cpp source-cpp">B<span class="sy4">::</span><span class="me2">void_pointer</span></span></span> &#19982; <span class="t-c"><span class="mw-geshi cpp source-cpp">A<span class="sy4">::</span><span class="me2">void_pointer</span></span></span> &#20026;&#21516;&#19968;&#31867;&#22411;&#12290;</li>
</ul>
</td>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">A<span class="sy4">::</span><span class="me2">const_void_pointer</span></span></span> <span class="t-mark">(&#21487;&#36873;)</span></td>
<td><i>&#65288;&#26410;&#25351;&#26126;&#65289;</i></td>
<td>
<ul>
<li>&#28385;&#36275;<a href="cpp-named_req-NullablePointer.html"><span style="font-style:italic">&#21487;&#31354;&#25351;&#38024;</span> <span style="font-family: Georgia, &#39;DejaVu Serif&#39;, serif; font-style:italic">(NullablePointer)</span></a> &#12290;</li>
<li><span class="t-c"><span class="mw-geshi cpp source-cpp">A<span class="sy4">::</span><span class="me2">pointer</span></span></span> &#12289; <span class="t-c"><span class="mw-geshi cpp source-cpp">A<span class="sy4">::</span><span class="me2">const_pointer</span></span></span> &#19982; <span class="t-c"><span class="mw-geshi cpp source-cpp">A<span class="sy4">::</span><span class="me2">void_pointer</span></span></span> &#21487;&#36716;&#25442;&#20026; <span class="t-c"><span class="mw-geshi cpp source-cpp">A<span class="sy4">::</span><span class="me2">const_void_pointer</span></span></span> &#12290;</li>
<li><span class="t-c"><span class="mw-geshi cpp source-cpp">B<span class="sy4">::</span><span class="me2">const_void_pointer</span></span></span> &#19982; <span class="t-c"><span class="mw-geshi cpp source-cpp">A<span class="sy4">::</span><span class="me2">const_void_pointer</span></span></span> &#20026;&#21516;&#19968;&#31867;&#22411;&#12290;</li>
</ul>
</td>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">A<span class="sy4">::</span><span class="me2">value_type</span></span></span></td>
<td><code>T</code></td>
<td></td>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">A<span class="sy4">::</span><span class="me2">size_type</span></span></span> <span class="t-mark">(&#21487;&#36873;)</span></td>
<td><i>&#65288;&#26410;&#25351;&#26126;&#65289;</i></td>
<td>
<ul>
<li>&#26080;&#31526;&#21495;&#25972;&#25968;&#31867;&#22411;&#12290;</li>
<li>&#33021;&#34920;&#31034; <code>A</code> &#25152;&#33021;&#20998;&#37197;&#30340;&#26368;&#22823;&#23545;&#35937;&#30340;&#22823;&#23567;&#12290;</li>
</ul>
</td>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">A<span class="sy4">::</span><span class="me2">difference_type</span></span></span> <span class="t-mark">(&#21487;&#36873;)</span></td>
<td><i>&#65288;&#26410;&#25351;&#26126;&#65289;</i></td>
<td>
<ul>
<li>&#26377;&#31526;&#21495;&#25972;&#25968;&#31867;&#22411;&#12290;</li>
<li>&#33021;&#34920;&#31034;&#20219;&#20309;&#20108;&#20010;&#25351;&#21521; <code>A</code> &#25152;&#20998;&#37197;&#30340;&#23545;&#35937;&#30340;&#25351;&#38024;&#30340;&#24046;</li>
</ul>
</td>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">A<span class="sy4">::</span><span class="kw1">template</span> rebind<span class="sy1">&lt;</span>U<span class="sy1">&gt;</span><span class="sy4">::</span><span class="me2">other</span></span></span><br />
<span class="t-mark">(&#21487;&#36873;)</span><sup id="cite_ref-2" class="reference"><a href="cpp-named_req-Allocator.html#cite_note-2">[2]</a></sup></td>
<td><code>B</code></td>
<td>
<ul>
<li>&#23545;&#20110;&#20219;&#20309; <code>U</code> &#65292; <span class="t-c"><span class="mw-geshi cpp source-cpp">B<span class="sy4">::</span><span class="kw1">template</span> rebind<span class="sy1">&lt;</span>T<span class="sy1">&gt;</span><span class="sy4">::</span><span class="me2">other</span></span></span> &#20026; <code>A</code> &#12290;</li>
</ul>
</td>
</tr>
</table>
<table class="wikitable">
<caption>&#25351;&#38024;&#19978;&#30340;&#25805;&#20316;</caption>
<tr>
<th>&#34920;&#36798;&#24335;</th>
<th>&#36820;&#22238;&#31867;&#22411;</th>
<th>&#35201;&#27714;</th>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy2">*</span>p</span></span></td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">T<span class="sy3">&amp;</span></span></span></td>
<td></td>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy2">*</span>cp</span></span></td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">const</span> T<span class="sy3">&amp;</span></span></span></td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy2">*</span>cp</span></span> &#19982; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy2">*</span>p</span></span> &#26631;&#35782;&#21516;&#19968;&#23545;&#35937;&#12290;</td>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">p<span class="sy2">-</span><span class="sy1">&gt;</span>m</span></span></td>
<td><abbr title="T::m &#30340;&#31867;&#22411;&#12290;"><i>&#65288;&#21407;&#29366;&#65289;</i></abbr></td>
<td>&#21516; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="br0">(</span><span class="sy2">*</span>p<span class="br0">)</span>.<span class="me1">m</span></span></span> &#65292;&#33509; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="br0">(</span><span class="sy2">*</span>p<span class="br0">)</span>.<span class="me1">m</span></span></span> &#33391;&#23450;&#20041;&#12290;</td>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">cp<span class="sy2">-</span><span class="sy1">&gt;</span>m</span></span></td>
<td><abbr title="T::m &#30340;&#31867;&#22411;&#12290;"><i>&#65288;&#21407;&#29366;&#65289;</i></abbr></td>
<td>&#21516; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="br0">(</span><span class="sy2">*</span>cp<span class="br0">)</span>.<span class="me1">m</span></span></span> &#65292;&#33509; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="br0">(</span><span class="sy2">*</span>cp<span class="br0">)</span>.<span class="me1">m</span></span></span> &#33391;&#23450;&#20041;</td>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw1">static_cast</span><span class="sy1">&lt;</span>A<span class="sy4">::</span><span class="me2">pointer</span><span class="sy1">&gt;</span><span class="br0">(</span>vp<span class="br0">)</span></span></span></td>
<td><abbr title="A::pointer"><i>&#65288;&#21407;&#29366;&#65289;</i></abbr></td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw1">static_cast</span><span class="sy1">&lt;</span>A<span class="sy4">::</span><span class="me2">pointer</span><span class="sy1">&gt;</span><span class="br0">(</span>vp<span class="br0">)</span> <span class="sy1">==</span> p</span></span></td>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw1">static_cast</span><span class="sy1">&lt;</span>A<span class="sy4">::</span><span class="me2">const_pointer</span><span class="sy1">&gt;</span><span class="br0">(</span>cvp<span class="br0">)</span></span></span></td>
<td><abbr title="A::const_pointer"><i>&#65288;&#21407;&#29366;&#65289;</i></abbr></td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw1">static_cast</span><span class="sy1">&lt;</span>A<span class="sy4">::</span><span class="me2">const_pointer</span><span class="sy1">&gt;</span><span class="br0">(</span>cvp<span class="br0">)</span> <span class="sy1">==</span> cp</span></span></td>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-memory-pointer_traits.html"><span class="kw756">std::<span class="me2">pointer_traits</span></span></a><span class="sy1">&lt;</span>A<span class="sy4">::</span><span class="me2">pointer</span><span class="sy1">&gt;</span><span class="sy4">::</span><span class="me2">pointer_to</span><span class="br0">(</span>r<span class="br0">)</span></span></span></td>
<td><abbr title="A::pointer"><i>&#65288;&#21407;&#29366;&#65289;</i></abbr></td>
<td></td>
</tr>
</table>
<table class="wikitable">
<caption>&#23384;&#20648;&#19982;&#29983;&#23384;&#26399;&#25805;&#20316;</caption>
<tr>
<th>&#34920;&#36798;&#24335;</th>
<th>&#36820;&#22238;&#31867;&#22411;</th>
<th>&#35201;&#27714;</th>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">a.<span class="me1">allocate</span><span class="br0">(</span>n<span class="br0">)</span></span></span></td>
<td rowspan="2"><span class="t-c"><span class="mw-geshi cpp source-cpp">A<span class="sy4">::</span><span class="me2">pointer</span></span></span></td>
<td>&#20998;&#37197;&#36866;&#21512;&#19968;&#20010; <span class="t-c"><span class="mw-geshi cpp source-cpp">T<span class="br0">[</span>n<span class="br0">]</span></span></span> &#31867;&#22411;&#25968;&#32452;&#23545;&#35937;&#30340;&#23384;&#20648;&#24182;&#21019;&#24314;&#35813;&#25968;&#32452;&#65292;&#20294;&#19981;&#26500;&#36896;&#25968;&#32452;&#20803;&#32032;&#12290;&#21487;&#20197;&#25243;&#24322;&#24120;&#12290;</td>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">a.<span class="me1">allocate</span><span class="br0">(</span>n, cvp<span class="br0">)</span></span></span> <span class="t-mark">(&#21487;&#36873;)</span></td>
<td>&#21516; <span class="t-c"><span class="mw-geshi cpp source-cpp">a.<span class="me1">allocate</span><span class="br0">(</span>n<span class="br0">)</span></span></span> &#65292;&#20294;&#21487;&#33021;&#20197;&#26410;&#25351;&#23450;&#30340;&#26041;&#24335;&#20351;&#29992; <code>cvp</code> &#65288; <span class="t-c"><span class="mw-geshi cpp source-cpp">nullptr</span></span> &#25110;&#20174; <span class="t-c"><span class="mw-geshi cpp source-cpp">a.<span class="me1">allocate</span><span class="br0">(</span><span class="br0">)</span></span></span> &#33719;&#24471;&#30340;&#25351;&#38024;&#65289;&#20197;&#36741;&#21161;&#23616;&#37096;&#24615;&#12290;</td>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">a.<span class="me1">allocate_at_least</span><span class="br0">(</span>n<span class="br0">)</span></span></span> <span class="t-mark">(&#21487;&#36873;)</span> <span class="t-mark-rev t-since-cxx23">(C++23 &#36215;)</span></td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">std<span class="sy4">::</span><span class="me2">allocation_result</span><span class="sy1">&lt;</span><br /></span></span>
<p>&nbsp; &nbsp; A<span class="sy4">::</span><span class="me2">pointer</span><span class="sy1">&gt;</span></p>
</td>
<td>&#20998;&#37197;&#36866;&#21512;&#19968;&#20010; <span class="t-c"><span class="mw-geshi cpp source-cpp">T<span class="br0">[</span>cnt<span class="br0">]</span></span></span> &#31867;&#22411;&#25968;&#32452;&#23545;&#35937;&#30340;&#23384;&#20648;&#24182;&#21019;&#24314;&#35813;&#25968;&#32452;&#65292;&#20294;&#19981;&#26500;&#36896;&#25968;&#32452;&#20803;&#32032;&#65292;&#28982;&#21518;&#36820;&#22238; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="br0">{</span>p, cnt<span class="br0">}</span></span></span> &#65292;&#20854;&#20013; <code>p</code> &#25351;&#21521;&#23384;&#20648;&#32780; <code>cnt</code> &#19981;&#23567;&#20110; <code>n</code> &#12290;&#21487;&#20197;&#25243;&#24322;&#24120;&#12290;</td>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">a.<span class="me1">deallocate</span><span class="br0">(</span>p, n<span class="br0">)</span></span></span></td>
<td><i>&#65288;&#19981;&#20351;&#29992;&#65289;</i></td>
<td>&#35299;&#20998;&#37197; <code>p</code> &#25152;&#25351;&#21521;&#30340;&#23384;&#20648;&#65292;&#35813;&#20540;&#24517;&#39035;&#30001;&#20043;&#21069;&#35843;&#29992; <code>allocate</code> <span class="t-rev-inl t-since-cxx23"><span>&#25110; <code>allocate_at_least</code></span> <span><span class="t-mark-rev t-since-cxx23">(C++23 &#36215;)</span></span></span> &#36820;&#22238;&#19988;&#26410;&#34987;&#20013;&#38388;&#23545; <code>deallocate</code> &#30340;&#35843;&#29992;&#38750;&#27861;&#21270;&#12290; <code>n</code> &#24517;&#39035;&#21305;&#37197;&#20808;&#21069;&#20256;&#32473; <code>allocate</code> &#30340;&#20540;<span class="t-rev-inl t-since-cxx23"><span>&#25110;&#22312;&#32463;&#30001; <code>allocate_at_last</code> &#35831;&#27714;&#21644;&#36820;&#22238;&#30340;&#20803;&#32032;&#25968;&#20043;&#38388;&#65288;&#21487;&#20197;&#31561;&#20110;&#20219;&#19968;&#36793;&#30028;&#65289;</span> <span><span class="t-mark-rev t-since-cxx23">(C++23 &#36215;)</span></span></span>&#12290;&#19981;&#25243;&#24322;&#24120;&#12290;</td>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">a.<span class="me1">max_size</span><span class="br0">(</span><span class="br0">)</span></span></span> <span class="t-mark">(&#21487;&#36873;)</span></td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">A<span class="sy4">::</span><span class="me2">size_type</span></span></span></td>
<td>&#33021;&#20256;&#36882;&#32473; <span class="t-c"><span class="mw-geshi cpp source-cpp">A<span class="sy4">::</span><span class="me2">allocate</span><span class="br0">(</span><span class="br0">)</span></span></span> &#30340;&#26368;&#22823;&#20540;&#12290;</td>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">a.<span class="me1">construct</span><span class="br0">(</span>xp, args<span class="br0">)</span></span></span> <span class="t-mark">(&#21487;&#36873;)</span></td>
<td><i>&#65288;&#19981;&#20351;&#29992;&#65289;</i></td>
<td>&#20110;&#20808;&#21069;&#20998;&#37197;&#30340; <code>xp</code> &#25152;&#25351;&#21521;&#30340;&#23384;&#20648;&#26500;&#36896; <code>X</code> &#31867;&#22411;&#23545;&#35937;&#65292;&#20197; <code>args</code> &#20026;&#26500;&#36896;&#20989;&#25968;&#21442;&#25968;&#12290;</td>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">a.<span class="me1">destroy</span><span class="br0">(</span>xp<span class="br0">)</span></span></span> <span class="t-mark">(&#21487;&#36873;)</span></td>
<td><i>&#65288;&#19981;&#20351;&#29992;&#65289;</i></td>
<td>&#38144;&#27585; <code>xp</code> &#25152;&#25351;&#21521;&#30340; <code>X</code> &#31867;&#22411;&#23545;&#35937;&#65292;&#20294;&#19981;&#35299;&#20998;&#37197;&#23384;&#20648;&#12290;</td>
</tr>
</table>
<table class="wikitable">
<caption>&#23454;&#20363;&#38388;&#30340;&#20851;&#31995;</caption>
<tr>
<th>&#34920;&#36798;&#24335;</th>
<th>&#36820;&#22238;&#31867;&#22411;</th>
<th>&#35201;&#27714;</th>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">a1 <span class="sy1">==</span> a2</span></span></td>
<td rowspan="2"><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">bool</span></span></span></td>
<td>
<ul>
<li>&#20165;&#33509;&#30001;&#20998;&#37197;&#22120; <code>a1</code> &#20998;&#37197;&#30340;&#23384;&#20648;&#33021;&#36890;&#36807; <code>a2</code> &#35299;&#20998;&#37197;&#25165;&#20026; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw2">true</span></span></span> &#12290;</li>
<li>&#24314;&#31435;&#33258;&#21453;&#12289;&#23545;&#31216;&#21644;&#20256;&#36882;&#20851;&#31995;&#12290;</li>
<li>&#19981;&#25243;&#24322;&#24120;&#12290;</li>
</ul>
</td>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">a1 <span class="sy3">!</span><span class="sy1">=</span> a2</span></span></td>
<td>
<ul>
<li>&#21516; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy3">!</span><span class="br0">(</span>a1<span class="sy1">==</span>a2<span class="br0">)</span></span></span> &#12290;</li>
</ul>
</td>
</tr>
<tr>
<th>&#22768;&#26126;</th>
<th>&#25928;&#26524;</th>
<th>&#35201;&#27714;</th>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">A a1<span class="br0">(</span>a<span class="br0">)</span></span></span></td>
<td rowspan="2">&#22797;&#21046;&#26500;&#36896; <code>a1</code> &#20351;&#24471; <span class="t-c"><span class="mw-geshi cpp source-cpp">a1 <span class="sy1">==</span> a</span></span> &#12290;<br />
&#65288;&#27880;&#65306;&#27599;&#20010;<span style="font-style:italic">&#20998;&#37197;&#22120;</span> <span style="font-family: Georgia, &#39;DejaVu Serif&#39;, serif; font-style:italic">(Allocator)</span> &#20134;&#28385;&#36275;<a href="cpp-named_req-CopyConstructible.html"><span style="font-style:italic">&#21487;&#22797;&#21046;&#26500;&#36896;</span> <span style="font-family: Georgia, &#39;DejaVu Serif&#39;, serif; font-style:italic">(CopyConstructible)</span></a> &#12290;&#65289;</td>
<td rowspan="2">
<ul>
<li>&#19981;&#25243;&#24322;&#24120;&#12290;</li>
</ul>
</td>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">A a1 <span class="sy1">=</span> a</span></span></td>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">A a<span class="br0">(</span>b<span class="br0">)</span></span></span></td>
<td>&#26500;&#36896; <code>a</code> &#20351;&#24471; <span class="t-c"><span class="mw-geshi cpp source-cpp">B<span class="br0">(</span>a<span class="br0">)</span><span class="sy1">==</span>b</span></span> &#19988; <span class="t-c"><span class="mw-geshi cpp source-cpp">A<span class="br0">(</span>b<span class="br0">)</span><span class="sy1">==</span>a</span></span> &#12290;<br />
&#65288;&#36825;&#38544;&#21547;&#25152;&#26377;&#30001; <code>rebind</code> &#32852;&#31995;&#30340;&#20998;&#37197;&#22120;&#22343;&#32500;&#25252;&#24444;&#27492;&#30340;&#36164;&#28304;&#65292;&#20363;&#22914;&#20869;&#23384;&#27744;&#12290;&#65289;</td>
<td>
<ul>
<li>&#19981;&#25243;&#24322;&#24120;&#12290;</li>
</ul>
</td>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">A a1<span class="br0">(</span>std<span class="sy4">::</span><span class="me2">move</span><span class="br0">(</span>a<span class="br0">)</span><span class="br0">)</span></span></span></td>
<td rowspan="2">&#26500;&#36896; <code>a1</code> &#20351;&#24471;&#23427;&#31561;&#20110;&#20808;&#21069; <code>a</code> &#30340;&#20540;&#12290;</td>
<td rowspan="2">
<ul>
<li>&#19981;&#25243;&#24322;&#24120;&#12290;</li>
<li>&#19981;&#26356;&#25913; <code>a</code> &#30340;&#20540;&#19988; <span class="t-c"><span class="mw-geshi cpp source-cpp">a1 <span class="sy1">==</span> a</span></span> &#12290;</li>
</ul>
</td>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">A a1 <span class="sy1">=</span> std<span class="sy4">::</span><span class="me2">move</span><span class="br0">(</span>a<span class="br0">)</span></span></span></td>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">A a<span class="br0">(</span>std<span class="sy4">::</span><span class="me2">move</span><span class="br0">(</span>b<span class="br0">)</span><span class="br0">)</span></span></span></td>
<td>&#26500;&#36896; <code>a</code> &#20351;&#24471;&#23427;&#31561;&#20110;&#20808;&#21069; <span class="t-c"><span class="mw-geshi cpp source-cpp">A<span class="br0">(</span>b<span class="br0">)</span></span></span> &#30340;&#20540;&#12290;</td>
<td>
<ul>
<li>&#19981;&#25243;&#24322;&#24120;&#12290;</li>
</ul>
</td>
</tr>
<tr>
<th>&#31867;&#22411;&#26631;&#35782;</th>
<th>&#21035;&#21517;&#20351;&#29992;&#30340;&#31867;&#22411;</th>
<th>&#35201;&#27714;</th>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">A<span class="sy4">::</span><span class="me2">is_always_equal</span></span></span><br />
<span class="t-mark">(&#21487;&#36873;)</span> <span class="t-mark-rev t-since-cxx17">(C++17 &#36215;)</span></td>
<td><span class="t-lc"><a href="cpp-types-integral_constant.html">std::true_type</a></span> &#25110; <span class="t-lc"><a href="cpp-types-integral_constant.html">std::false_type</a></span> &#25110;&#20174;&#23427;&#20204;&#27966;&#29983;&#12290;</td>
<td>
<ul>
<li>&#33509;&#20108;&#20010; <code>A</code> &#31867;&#22411;&#20998;&#37197;&#22120;&#22987;&#32456;&#27604;&#36739;&#30456;&#31561;&#21017;&#20026; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw2">true</span></span></span> &#12290;</li>
<li>&#65288;&#33509;&#19981;&#25552;&#20379;&#65292;&#21017; <span class="t-lc"><a href="cpp-memory-allocator_traits.html">std::allocator_traits</a></span> &#40664;&#35748;&#23427;&#20026; <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-types-is_empty.html"><span class="kw508">std::<span class="me2">is_empty</span></span></a><span class="sy1">&lt;</span>A<span class="sy1">&gt;</span><span class="sy4">::</span><span class="me2">type</span></span></span> &#12290;&#65289;</li>
</ul>
</td>
</tr>
</table>
<table class="wikitable">
<caption>&#23481;&#22120;&#25805;&#20316;&#19978;&#30340;&#24433;&#21709;</caption>
<tr>
<th>&#34920;&#36798;&#24335;</th>
<th>&#36820;&#22238;&#31867;&#22411;</th>
<th>&#25551;&#36848;</th>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">a.<span class="me1">select_on_container_copy_construction</span><span class="br0">(</span><span class="br0">)</span></span></span><br />
<span class="t-mark">(&#21487;&#36873;)</span></td>
<td><code>A</code></td>
<td>
<ul>
<li>&#25552;&#20379;&#20174;&#24403;&#21069;&#20351;&#29992; <code>a</code> &#30340;&#23481;&#22120;&#22797;&#21046;&#26500;&#36896;&#23481;&#22120;&#25152;&#29992;&#30340; <code>A</code> &#30340;&#23454;&#20363;&#12290;</li>
<li>&#65288;&#36890;&#24120;&#36820;&#22238; <code>a</code> &#30340;&#21103;&#26412;&#25110;&#40664;&#35748;&#26500;&#36896;&#30340; <code>A</code> &#12290;&#65289;</li>
</ul>
</td>
</tr>
<tr>
<th>&#31867;&#22411;&#26631;&#35782;</th>
<th>&#21035;&#21517;&#20351;&#29992;&#30340;&#31867;&#22411;</th>
<th>&#25551;&#36848;</th>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">A<span class="sy4">::</span><span class="me2">propagate_on_container_copy_assignment</span></span></span><br />
<span class="t-mark">(&#21487;&#36873;)</span></td>
<td rowspan="3"><span class="t-lc"><a href="cpp-types-integral_constant.html">std::true_type</a></span> &#25110; <span class="t-lc"><a href="cpp-types-integral_constant.html">std::false_type</a></span> &#25110;&#20174;&#23427;&#20204;&#27966;&#29983;&#12290;</td>
<td>
<ul>
<li>&#33509;&#22797;&#21046;&#36171;&#20540;&#20351;&#29992; <code>A</code> &#31867;&#22411;&#20998;&#37197;&#22120;&#30340;&#23481;&#22120;&#26102;&#38656;&#35201;&#22797;&#21046;&#23427;&#21017;&#20026; <span class="t-lc"><a href="cpp-types-integral_constant.html">std::true_type</a></span> &#25110;&#20854;&#27966;&#29983;&#31867;&#12290;</li>
<li>&#33509;&#27492;&#25104;&#21592;&#20026; <span class="t-lc"><a href="cpp-types-integral_constant.html">std::true_type</a></span> &#25110;&#20174;&#23427;&#27966;&#29983;&#65292;&#21017; <code>A</code> &#24517;&#39035;&#28385;&#36275;<a href="cpp-named_req-CopyAssignable.html"><span style="font-style:italic">&#21487;&#22797;&#21046;&#36171;&#20540;</span> <span style="font-family: Georgia, &#39;DejaVu Serif&#39;, serif; font-style:italic">(CopyAssignable)</span></a> &#19988;&#22797;&#21046;&#25805;&#20316;&#24517;&#39035;&#19981;&#25243;&#24322;&#24120;&#12290;</li>
<li>&#27880;&#24847;&#33509;&#28304;&#19982;&#30446;&#26631;&#23481;&#22120;&#30340;&#20998;&#37197;&#22120;&#19981;&#27604;&#36739;&#30456;&#31561;&#65292;&#21017;&#22797;&#21046;&#36171;&#20540;&#24517;&#39035;&#29992;&#26087;&#20998;&#37197;&#22120;&#35299;&#20998;&#37197;&#30446;&#26631;&#30340;&#20869;&#23384;&#65292;&#28982;&#21518;&#22312;&#22797;&#21046;&#20803;&#32032;&#65288;&#21644;&#20998;&#37197;&#22120;&#65289;&#21069;&#29992;&#26032;&#20998;&#37197;&#22120;&#20998;&#37197;&#20869;&#23384;&#12290;</li>
</ul>
</td>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">A<span class="sy4">::</span><span class="me2">propagate_on_container_move_assignment</span></span></span><br />
<span class="t-mark">(&#21487;&#36873;)</span></td>
<td>
<ul>
<li>&#33509;&#31227;&#21160;&#36171;&#20540;&#20351;&#29992; <code>A</code> &#31867;&#22411;&#20998;&#37197;&#22120;&#30340;&#23481;&#22120;&#26102;&#38656;&#35201;&#31227;&#21160;&#23427;&#21017;&#20026; <span class="t-lc"><a href="cpp-types-integral_constant.html">std::true_type</a></span> &#25110;&#20854;&#27966;&#29983;&#31867;&#12290;</li>
<li>&#33509;&#27492;&#25104;&#21592;&#20026; <span class="t-lc"><a href="cpp-types-integral_constant.html">std::true_type</a></span> &#25110;&#20174;&#23427;&#27966;&#29983;&#65292;&#21017; <code>A</code> &#24517;&#39035;&#28385;&#36275;<a href="cpp-named_req-MoveAssignable.html"><span style="font-style:italic">&#21487;&#31227;&#21160;&#36171;&#20540;</span> <span style="font-family: Georgia, &#39;DejaVu Serif&#39;, serif; font-style:italic">(MoveAssignable)</span></a> &#19988;&#31227;&#21160;&#25805;&#20316;&#24517;&#39035;&#19981;&#25243;&#24322;&#24120;&#12290;</li>
<li>&#33509;&#19981;&#25552;&#20379;&#27492;&#25104;&#21592;&#25110;&#23427;&#20174; <span class="t-lc"><a href="cpp-types-integral_constant.html">std::false_type</a></span> &#27966;&#29983;&#65292;&#32780;&#28304;&#19982;&#30446;&#26631;&#23481;&#22120;&#30340;&#20998;&#37197;&#22120;&#19981;&#27604;&#36739;&#30456;&#31561;&#65292;&#21017;&#31227;&#21160;&#36171;&#20540;&#19981;&#33021;&#21462;&#24471;&#28304;&#20869;&#23384;&#30340;&#25152;&#26377;&#26435;&#65292;&#24182;&#19988;&#24517;&#39035;&#21333;&#29420;&#22320;&#22797;&#21046;&#36171;&#20540;&#25110;&#22797;&#21046;&#26500;&#36896;&#20803;&#32032;&#65292;&#25353;&#38656;&#37325;&#32622;&#20854;&#33258;&#36523;&#20869;&#23384;&#30340;&#22823;&#23567;&#12290;</li>
</ul>
</td>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">A<span class="sy4">::</span><span class="me2">propagate_on_container_swap</span></span></span><br />
<span class="t-mark">(&#21487;&#36873;)</span></td>
<td>
<ul>
<li>&#33509;&#20132;&#25442;&#20108;&#20010;&#20351;&#29992; <code>A</code> &#31867;&#22411;&#20998;&#37197;&#22120;&#30340;&#23481;&#22120;&#26102;&#38656;&#35201;&#31227;&#21160;&#23427;&#20204;&#21017;&#20026; <span class="t-lc"><a href="cpp-types-integral_constant.html">std::true_type</a></span> &#25110;&#20854;&#27966;&#29983;&#31867;&#12290;</li>
<li>&#33509;&#27492;&#25104;&#21592;&#20026; <span class="t-lc"><a href="cpp-types-integral_constant.html">std::true_type</a></span> &#25110;&#20174;&#23427;&#27966;&#29983;&#65292;&#21017; <code>A</code> &#30340;&#24038;&#20540;&#24517;&#39035;&#20026;<a href="cpp-named_req-Swappable.html"><span style="font-style:italic">&#21487;&#20132;&#25442;</span> <span style="font-family: Georgia, &#39;DejaVu Serif&#39;, serif; font-style:italic">(Swappable)</span></a> &#19988;&#20132;&#25442;&#25805;&#20316;&#24517;&#39035;&#19981;&#25243;&#24322;&#24120;&#12290;</li>
<li>&#33509;&#19981;&#25552;&#20379;&#27492;&#25104;&#21592;&#25110;&#23427;&#20174; <span class="t-lc"><a href="cpp-types-integral_constant.html">std::false_type</a></span> &#27966;&#29983;&#65292;&#19988;&#20108;&#20010;&#23481;&#22120;&#30340;&#20998;&#37197;&#22120;&#19981;&#27604;&#36739;&#30456;&#31561;&#65292;&#21017;&#23481;&#22120;&#20132;&#25442;&#30340;&#34892;&#20026;&#26410;&#23450;&#20041;&#12290;</li>
</ul>
</td>
</tr>
</table>
<p>&#27880;&#65306;</p>
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="cpp-named_req-Allocator.html#cite_ref-1">&uarr;</a></span> <span class="reference-text">&#21442;&#38405;&#21518;&#36848;<a href="cpp-named_req-Allocator.html#.E7.BC.80.E9.A5.B0.E6.8C.87.E9.92.88">&#32512;&#39280;&#25351;&#38024;</a>&#12290;</span></li>
<li id="cite_note-2"><span class="mw-cite-backlink"><a href="cpp-named_req-Allocator.html#cite_ref-2">&uarr;</a></span> <span class="reference-text"><code>rebind</code> &#20165;&#33509;&#20998;&#37197;&#22120;&#26159;&#24418;&#24335;&#20026; <span class="t-c"><span class="mw-geshi cpp source-cpp">SomeAllocator<span class="sy1">&lt;</span>T, Args<span class="sy1">&gt;</span></span></span> &#30340;&#27169;&#26495;&#65292;&#20854;&#20013; <code>Args</code> &#26159;&#38646;&#25110;&#26356;&#22810;&#20010;&#39069;&#22806;&#30340;&#31867;&#22411;&#27169;&#26495;&#24418;&#21442;&#25165;&#20026;&#21487;&#36873;&#65288;&#30001; <span class="t-lc"><a href="cpp-memory-allocator_traits.html">std::allocator_traits</a></span> &#25552;&#20379;&#65289;&#12290;</span></li>
</ol>
<p>&#32473;&#23450;</p>
<ul>
<li><code>x1</code> &#19982; <code>x2</code> &#65292;&#65288;&#21487;&#33021;&#19981;&#21516;&#65289;&#31867;&#22411; <code>X::void_pointer</code> &#12289; <code>X::const_void_pointer</code> &#12289; <code>X::pointer</code> &#25110; <code>X::const_pointer</code> &#30340;&#23545;&#35937;&#12290;</li>
</ul>
<p>&#21017; <code>x1</code> &#19982; <code>x2</code> &#20026;<i>&#31561;&#20215;&#20540;</i>&#30340;&#25351;&#38024;&#20540;&#65292;&#24403;&#19988;&#20165;&#24403; <code>x1</code> &#19982; <code>x2</code> &#33021;&#29992; <code>static_cast</code> &#65292;&#20165;&#20351;&#29992;&#36825;&#22235;&#20010;&#31867;&#22411;&#30340;&#24207;&#21015;&#26174;&#24335;&#36716;&#25442;&#25104;&#20108;&#20010;&#23545;&#24212;&#30340; <code>X::const_pointer</code> &#31867;&#22411;&#23545;&#35937; <code>px1</code> &#19982; <code>px2</code> &#65292;&#32780;&#34920;&#36798;&#24335; <span class="t-c"><span class="mw-geshi cpp source-cpp">px1 <span class="sy1">==</span> px2</span></span> &#27714;&#20540;&#20026; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw2">true</span></span></span> &#12290;</p>
<p>&#32473;&#23450;</p>
<ul>
<li><code>w1</code> &#19982; <code>w2</code> &#65292; <code>X::void_pointer</code> &#31867;&#22411;&#23545;&#35937;&#12290;</li>
</ul>
<p>&#21017;&#23545;&#20110;&#34920;&#36798;&#24335; <span class="t-c"><span class="mw-geshi cpp source-cpp">w1 <span class="sy1">==</span> w2</span></span> &#19982; <span class="t-c"><span class="mw-geshi cpp source-cpp">w1 <span class="sy3">!</span><span class="sy1">=</span> w2</span></span> &#65292;&#21487;&#23558;&#19968;&#20010;&#25110;&#20004;&#20010;&#23545;&#35937;&#26367;&#25442;&#25104;<i>&#31561;&#20215;&#20540;</i>&#30340; <code>X::const_void_pointer</code> &#31867;&#22411;&#23545;&#35937;&#32780;&#26080;&#35821;&#20041;&#26356;&#25913;&#12290;</p>
<p>&#32473;&#23450;</p>
<ul>
<li><code>p1</code> &#19982; <code>p2</code> &#65292; <code>X::pointer</code> &#31867;&#22411;&#23545;&#35937;</li>
</ul>
<p>&#21017;&#23545;&#20110;&#34920;&#36798;&#24335; <span class="t-c"><span class="mw-geshi cpp source-cpp">p1 <span class="sy1">==</span> p2</span></span> &#12289; <span class="t-c"><span class="mw-geshi cpp source-cpp">p1 <span class="sy3">!</span><span class="sy1">=</span> p2</span></span> &#12289; <span class="t-c"><span class="mw-geshi cpp source-cpp">p1 <span class="sy1">&lt;</span> p2</span></span> &#12289; <span class="t-c"><span class="mw-geshi cpp source-cpp">p1 <span class="sy1">&lt;=</span> p2</span></span> &#12289; <span class="t-c"><span class="mw-geshi cpp source-cpp">p1 <span class="sy1">&gt;=</span> p2</span></span> &#12289; <span class="t-c"><span class="mw-geshi cpp source-cpp">p1 <span class="sy1">&gt;</span> p2</span></span> &#12289; <span class="t-c"><span class="mw-geshi cpp source-cpp">p1 <span class="sy2">-</span> p2</span></span> &#65292;&#21487;&#23558;&#19968;&#20010;&#25110;&#20004;&#20010;&#23545;&#35937;&#26367;&#25442;&#25104;<i>&#31561;&#20215;&#20540;</i>&#30340; <code>X::const_pointer</code> &#31867;&#22411;&#23545;&#35937;&#32780;&#26080;&#35821;&#20041;&#26356;&#25913;&#12290;</p>
<p>&#20197;&#19978;&#35201;&#27714;&#20351;&#24471;&#33021;&#27604;&#36739;<a href="cpp-named_req-Container.html"><span style="font-style:italic">&#23481;&#22120;</span> <span style="font-family: Georgia, &#39;DejaVu Serif&#39;, serif; font-style:italic">(Container)</span></a> &#30340; <code>iterator</code> &#19982; <code>const_iterator</code> &#12290;</p>
<table class="t-rev-begin">
<tr class="t-rev t-since-cxx17">
<td>
<h4><span class="mw-headline" id=".E5.88.86.E9.85.8D.E5.99.A8.E5.AE.8C.E6.95.B4.E6.80.A7.E8.A6.81.E6.B1.82">&#20998;&#37197;&#22120;&#23436;&#25972;&#24615;&#35201;&#27714;</span></h4>
<p>&#33509;&#26080;&#35770; <code>T</code> &#26159;&#21542;&#20026;&#23436;&#25972;&#31867;&#22411;&#19979;&#21015;&#20108;&#32773;&#30342;&#20026;&#30495;&#65292;&#21017;&#38024;&#23545;&#31867;&#22411; <code>T</code> &#30340;&#20998;&#37197;&#22120;&#31867;&#22411; <code>X</code> &#36824;&#39069;&#22806;&#28385;&#36275;<i>&#20998;&#37197;&#22120;&#23436;&#25972;&#24615;&#35201;&#27714;</i>&#65306;</p>
<ul>
<li><code>X</code> &#26159;&#23436;&#25972;&#31867;&#22411;</li>
<li>&#38500; <code>value_type</code> &#20043;&#22806;&#65292;&#25152;&#26377; <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-memory-allocator_traits.html"><span class="kw701">std::<span class="me2">allocator_traits</span></span></a><span class="sy1">&lt;</span>X<span class="sy1">&gt;</span></span></span> &#30340;&#25104;&#21592;&#37117;&#26159;&#23436;&#25972;&#31867;&#22411;&#12290;</li>
</ul>
</td>
<td><span class="t-mark-rev t-since-cxx17">(C++17 &#36215;)</span></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E6.9C.89.E7.8A.B6.E6.80.81.E4.B8.8E.E6.97.A0.E7.8A.B6.E6.80.81.E5.88.86.E9.85.8D.E5.99.A8">&#26377;&#29366;&#24577;&#19982;&#26080;&#29366;&#24577;&#20998;&#37197;&#22120;</span></h3>
<p>&#27599;&#20010;<span style="font-style:italic">&#20998;&#37197;&#22120;</span> <span style="font-family: Georgia, &#39;DejaVu Serif&#39;, serif; font-style:italic">(Allocator)</span> &#31867;&#22411;&#35201;&#20040;&#26159;<i>&#26377;&#29366;&#24577;</i>&#35201;&#20040;&#26159;<i>&#26080;&#29366;&#24577;</i>&#12290;&#36890;&#24120;&#26469;&#35828;&#65292;&#26377;&#29366;&#24577;&#20998;&#37197;&#22120;&#31867;&#22411;&#33021;&#25317;&#26377;&#20195;&#34920;&#26377;&#21035;&#30340;&#20869;&#23384;&#36164;&#28304;&#30340;&#19981;&#30456;&#31561;&#20540;&#65292;&#32780;&#26080;&#29366;&#24577;&#20998;&#37197;&#22120;&#31867;&#22411;&#20195;&#34920;&#21333;&#19968;&#20869;&#23384;&#36164;&#28304;&#12290;</p>
<table class="t-rev-begin">
<tr class="t-rev t-until-cxx11">
<td>
<p>&#23613;&#31649;&#19981;&#35201;&#27714;&#33258;&#23450;&#20041;&#20998;&#37197;&#22120;&#20026;&#26080;&#29366;&#24577;&#65292;&#26631;&#20934;&#24211;&#20013;&#26159;&#21542;&#21450;&#22914;&#20309;&#25903;&#25345;&#20998;&#37197;&#22120;&#26159;&#23454;&#29616;&#23450;&#20041;&#30340;&#12290;&#33509;&#23454;&#29616;&#19981;&#25903;&#25345;&#20351;&#29992;&#19981;&#30456;&#31561;&#30340;&#20998;&#37197;&#22120;&#20540;&#65292;&#21017;&#36825;&#31181;&#20351;&#29992;&#21487;&#33021;&#23548;&#33268;&#23454;&#29616;&#23450;&#20041;&#30340;&#36816;&#34892;&#26102;&#38169;&#35823;&#25110;&#26410;&#23450;&#20041;&#34892;&#20026;&#12290;</p>
</td>
<td><span class="t-mark-rev t-until-cxx11">(C++11 &#21069;)</span></td>
</tr>
<tr class="t-rev t-since-cxx11">
<td>
<p>&#23450;&#21046;&#20998;&#37197;&#22120;&#21487;&#21547;&#26377;&#29366;&#24577;&#12290;&#27599;&#20010;&#23481;&#22120;&#25110;&#21478;&#19968;&#30693;&#20998;&#37197;&#22120;&#23545;&#35937;&#23384;&#20648;&#25552;&#20379;&#30340;&#20998;&#37197;&#22120;&#30340;&#23454;&#20363;&#24182;&#36890;&#36807; <span class="t-lc"><a href="cpp-memory-allocator_traits.html">std::allocator_traits</a></span> &#25511;&#21046;&#20998;&#37197;&#22120;&#26367;&#25442;&#12290;</p>
</td>
<td><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></td>
</tr>
</table>
<p>&#26080;&#29366;&#24577;&#20998;&#37197;&#22120;&#31867;&#22411;&#30340;&#23454;&#20363;&#22987;&#32456;&#27604;&#36739;&#30456;&#31561;&#12290;&#26080;&#29366;&#24577;&#20998;&#37197;&#22120;&#31867;&#22411;&#24120;&#23454;&#29616;&#20026;&#31354;&#31867;&#24182;&#36866;&#21512;<a href="cpp-language-ebo.html">&#31354;&#22522;&#31867;&#20248;&#21270;</a>&#12290;</p>
<table class="t-rev-begin">
<tr class="t-rev t-since-cxx17">
<td>
<p><span class="t-lc"><a href="cpp-memory-allocator_traits.html">std::allocator_traits</a></span> &#30340;&#25104;&#21592;&#31867;&#22411; <code>is_always_equal</code> &#26377;&#24847;&#29992;&#20110;&#30830;&#23450;&#20998;&#37197;&#22120;&#31867;&#22411;&#26159;&#21542;&#20026;&#26080;&#29366;&#24577;&#12290;</p>
</td>
<td><span class="t-mark-rev t-since-cxx17">(C++17 &#36215;)</span></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E7.BC.80.E9.A5.B0.E6.8C.87.E9.92.88">&#32512;&#39280;&#25351;&#38024;</span></h3>
<p>&#24403;&#25104;&#21592;&#31867;&#22411; <code>pointer</code> &#19981;&#26159;&#21407;&#29983;&#25351;&#38024;&#26102;&#65292;&#23427;&#36890;&#24120;&#34987;&#31216;&#20026;&ldquo;<a rel="nofollow" class="external text" href="https://wg21.link/p0773r0">&#32512;&#39280;&#25351;&#38024;&#65288;fancy pointer&#65289;</a>&rdquo;&#12290;&#36825;&#31181;&#25351;&#38024;&#26366;&#20026;&#25903;&#25345;&#20998;&#27573;&#20869;&#23384;&#26550;&#26500;&#32780;&#24341;&#20837;&#65292;&#24182;&#22312;&#24403;&#20170;&#29992;&#20110;&#35775;&#38382;&#22312;&#26576;&#20123;&#19981;&#21516;&#20110;&#21407;&#29983;&#25351;&#38024;&#25152;&#35775;&#38382;&#30340;&#21516;&#36136;&#34394;&#25311;&#22320;&#22336;&#31354;&#38388;&#30340;&#22320;&#22336;&#31354;&#38388;&#20013;&#25152;&#20998;&#37197;&#30340;&#23545;&#35937;&#12290;&#32512;&#39280;&#25351;&#38024;&#30340;&#19968;&#20010;&#23454;&#20363;&#26159;&#26144;&#23556;&#30340;&#19981;&#20381;&#36182;&#22320;&#22336;&#25351;&#38024; <a rel="nofollow" class="external text" href="http://www.boost.org/doc/libs/release/doc/html/interprocess/offset_ptr.html"><code>boost::interprocess::offset_ptr</code></a>&#65292;&#23427;&#20351;&#24471;&#22312;&#20849;&#20139;&#20869;&#23384;&#21644;&#22312;&#27599;&#20010;&#36827;&#31243;&#20013;&#26144;&#23556;&#21040;&#19981;&#21516;&#22320;&#22336;&#30340;&#26144;&#23556;&#21040;&#20869;&#23384;&#25991;&#20214;&#20013;&#65292;&#20998;&#37197; <span class="t-lc"><a href="cpp-container-set.html">std::set</a></span> &#19968;&#31867;&#30340;&#22522;&#20110;&#32467;&#28857;&#30340;&#25968;&#25454;&#32467;&#26500;&#21487;&#34892;&#12290;<span class="t-rev-inl t-since-cxx11"><span>&#36890;&#36807;&#31867;&#27169;&#26495; <span class="t-lc"><a href="cpp-memory-pointer_traits.html">std::pointer_traits</a></span> &#65292;</span> <span><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></span></span>&#21487;&#20197;&#29420;&#31435;&#20110;&#25552;&#20379;&#32512;&#39280;&#25351;&#38024;&#30340;&#20998;&#37197;&#22120;&#32780;&#20351;&#29992;&#23427;&#20204;&#12290;<span class="t-rev-inl t-since-cxx20"><span>&#33021;&#29992;&#20989;&#25968; <span class="t-c"><span class="mw-geshi cpp source-cpp">std<span class="sy4">::</span><span class="me2">to_address</span></span></span> &#20174;&#32512;&#39280;&#25351;&#38024;&#33719;&#24471;&#35064;&#25351;&#38024;&#12290;</span> <span><span class="t-mark-rev t-since-cxx20">(C++20 &#36215;)</span></span></span></p>
<table class="t-rev-begin">
<tr class="t-rev t-until-cxx11">
<td>
<p>&#22312;&#26631;&#20934;&#24211;&#20013;&#20351;&#29992;&#32512;&#39280;&#25351;&#38024;&#21644;&#23450;&#21046;&#30340;&#22823;&#23567;/&#24046;&#31867;&#22411;&#26159;&#26465;&#20214;&#24615;&#25903;&#25345;&#30340;&#12290;&#23454;&#29616;&#21487;&#20197;&#35201;&#27714;&#25104;&#21592;&#31867;&#22411; <code>pointer</code> &#12289; <code>const_pointer</code> &#12289; <code>size_type</code> &#21644; <code>difference_type</code> &#20998;&#21035;&#20026; <span class="t-c"><span class="mw-geshi cpp source-cpp">value_type<span class="sy2">*</span></span></span> &#12289; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">const</span> value_type<span class="sy2">*</span></span></span> &#12289; <span class="t-lc"><a href="cpp-types-size_t.html">std::size_t</a></span> &#21644; <span class="t-lc"><a href="cpp-types-ptrdiff_t.html">std::ptrdiff_t</a></span> &#12290;</p>
</td>
<td><span class="t-mark-rev t-until-cxx11">(C++11 &#21069;)</span></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E6.A0.87.E5.87.86.E5.BA.93">&#26631;&#20934;&#24211;</span></h3>
<p>&#19979;&#21015;&#26631;&#20934;&#24211;&#32452;&#20214;&#28385;&#36275;<span style="font-style:italic">&#20998;&#37197;&#22120;</span> <span style="font-family: Georgia, &#39;DejaVu Serif&#39;, serif; font-style:italic">(Allocator)</span> &#35201;&#27714;&#65306;</p>
<table class="t-dsc-begin">
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-memory-allocator.html"><span class="t-lines"><span>allocator</span></span></a></div>
</div>
</td>
<td>&#40664;&#35748;&#30340;&#20998;&#37197;&#22120;<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-memory-scoped_allocator_adaptor.html"><span class="t-lines"><span>scoped_allocator_adaptor</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>&#20026;&#22810;&#32423;&#23481;&#22120;&#23454;&#29616;&#30340;&#22810;&#32423;&#20998;&#37197;&#22120;<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-memory-polymorphic_allocator.html"><span class="t-lines"><span>polymorphic_allocator</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>&#20197; <span class="t-lc">std::memory_resource</span> &#26500;&#36896;&#65292;&#25903;&#25345;&#22522;&#20110;&#23427;&#30340;&#36816;&#34892;&#26102;&#22810;&#24577;&#30340;&#20998;&#37197;&#22120;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E7.A4.BA.E4.BE.8B">&#31034;&#20363;</span></h3>
<div class="t-example">
<p>&#19968;&#20010; C++11 &#20998;&#37197;&#22120;&#65292;&#20294;&#28155;&#21152;&#20102; <span class="t-c"><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></span> &#20197;&#31526;&#21512; C++20 &#39118;&#26684;&#12290;</p>
<div class="t-example-live-link"></div>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="co2">#include &lt;cstdlib&gt;</span>
<span class="co2">#include &lt;new&gt;</span>
<span class="co2">#include &lt;limits&gt;</span>
<span class="co2">#include &lt;iostream&gt;</span>
<span class="co2">#include &lt;vector&gt;</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> Mallocator
<span class="br0">{</span>
<span class="kw1">typedef</span> T value_type<span class="sy4">;</span>
Mallocator <span class="br0">(</span><span class="br0">)</span> <span class="sy1">=</span> <span class="kw1">default</span><span class="sy4">;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> U<span class="sy1">&gt;</span> <span class="kw4">constexpr</span> Mallocator <span class="br0">(</span><span class="kw4">const</span> Mallocator <span class="sy1">&lt;</span>U<span class="sy1">&gt;</span><span class="sy3">&amp;</span><span class="br0">)</span> <span class="kw1">noexcept</span> <span class="br0">{</span><span class="br0">}</span>
<span class="br0">[</span><span class="br0">[</span>nodiscard<span class="br0">]</span><span class="br0">]</span> T<span class="sy2">*</span> allocate<span class="br0">(</span><a href="cpp-types-size_t.html"><span class="kw100">std::<span class="me2">size_t</span></span></a> n<span class="br0">)</span> <span class="br0">{</span>
<span class="kw1">if</span> <span class="br0">(</span>n <span class="sy1">&gt;</span> <a href="cpp-types-numeric_limits.html"><span class="kw344">std::<span class="me2">numeric_limits</span></span></a><span class="sy1">&lt;</span><a href="cpp-types-size_t.html"><span class="kw100">std::<span class="me2">size_t</span></span></a><span class="sy1">&gt;</span><span class="sy4">::</span><span class="me2">max</span><span class="br0">(</span><span class="br0">)</span> <span class="sy2">/</span> sizeof<span class="br0">(</span>T<span class="br0">)</span><span class="br0">)</span>
<span class="kw1">throw</span> <a href="cpp-memory-new-bad_array_new_length.html"><span class="kw694">std::<span class="me2">bad_array_new_length</span></span></a><span class="br0">{</span><span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">if</span> <span class="br0">(</span><span class="kw4">auto</span> p <span class="sy1">=</span> <span class="kw1">static_cast</span><span class="sy1">&lt;</span>T<span class="sy2">*</span><span class="sy1">&gt;</span><span class="br0">(</span><a href="cpp-memory-c-malloc.html"><span class="kw759">std::<span class="me2">malloc</span></span></a><span class="br0">(</span>n<span class="sy2">*</span>sizeof<span class="br0">(</span>T<span class="br0">)</span><span class="br0">)</span><span class="br0">)</span><span class="br0">)</span> <span class="br0">{</span>
report<span class="br0">(</span>p, n<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">return</span> p<span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">throw</span> <a href="cpp-memory-new-bad_alloc.html"><span class="kw693">std::<span class="me2">bad_alloc</span></span></a><span class="br0">{</span><span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw4">void</span> deallocate<span class="br0">(</span>T<span class="sy2">*</span> p, <a href="cpp-types-size_t.html"><span class="kw100">std::<span class="me2">size_t</span></span></a> n<span class="br0">)</span> <span class="kw1">noexcept</span> <span class="br0">{</span>
report<span class="br0">(</span>p, n, <span class="nu0">0</span><span class="br0">)</span><span class="sy4">;</span>
<a href="cpp-memory-c-free.html"><span class="kw763">std::<span class="me2">free</span></span></a><span class="br0">(</span>p<span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">private</span><span class="sy4">:</span>
<span class="kw4">void</span> report<span class="br0">(</span>T<span class="sy2">*</span> p, <a href="cpp-types-size_t.html"><span class="kw100">std::<span class="me2">size_t</span></span></a> n, <span class="kw4">bool</span> alloc <span class="sy1">=</span> <span class="kw2">true</span><span class="br0">)</span> <span class="kw4">const</span> <span class="br0">{</span>
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> <span class="br0">(</span>alloc <span class="sy4">?</span> <span class="st0">&quot;Alloc: &quot;</span> <span class="sy4">:</span> <span class="st0">&quot;Dealloc: &quot;</span><span class="br0">)</span> <span class="sy1">&lt;&lt;</span> sizeof<span class="br0">(</span>T<span class="br0">)</span><span class="sy2">*</span>n
<span class="sy1">&lt;&lt;</span> <span class="st0">&quot; bytes at &quot;</span> <span class="sy1">&lt;&lt;</span> <a href="cpp-io-manip-hex.html"><span class="kw1782">std::<span class="me2">hex</span></span></a> <span class="sy1">&lt;&lt;</span> <a href="cpp-io-manip-showbase.html"><span class="kw1766">std::<span class="me2">showbase</span></span></a>
<span class="sy1">&lt;&lt;</span> <span class="kw1">reinterpret_cast</span><span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy2">*</span><span class="sy1">&gt;</span><span class="br0">(</span>p<span class="br0">)</span> <span class="sy1">&lt;&lt;</span> <a href="cpp-io-manip-hex.html"><span class="kw1781">std::<span class="me2">dec</span></span></a> <span class="sy1">&lt;&lt;</span> <span class="st0">&#39;<span class="es1">\n</span>&#39;</span><span class="sy4">;</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> T, <span class="kw1">class</span> U<span class="sy1">&gt;</span>
<span class="kw4">bool</span> operator<span class="sy1">==</span><span class="br0">(</span><span class="kw4">const</span> Mallocator <span class="sy1">&lt;</span>T<span class="sy1">&gt;</span><span class="sy3">&amp;</span>, <span class="kw4">const</span> Mallocator <span class="sy1">&lt;</span>U<span class="sy1">&gt;</span><span class="sy3">&amp;</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> <span class="kw2">true</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="kw1">class</span> U<span class="sy1">&gt;</span>
<span class="kw4">bool</span> operator<span class="sy3">!</span><span class="sy1">=</span><span class="br0">(</span><span class="kw4">const</span> Mallocator <span class="sy1">&lt;</span>T<span class="sy1">&gt;</span><span class="sy3">&amp;</span>, <span class="kw4">const</span> Mallocator <span class="sy1">&lt;</span>U<span class="sy1">&gt;</span><span class="sy3">&amp;</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> <span class="kw2">false</span><span class="sy4">;</span> <span class="br0">}</span>
<span class="kw4">int</span> main<span class="br0">(</span><span class="br0">)</span>
<span class="br0">{</span>
<a href="cpp-container-vector.html"><span class="kw1269">std::<span class="me2">vector</span></span></a><span class="sy1">&lt;</span><span class="kw4">int</span>, Mallocator<span class="sy1">&lt;</span><span class="kw4">int</span><span class="sy1">&gt;&gt;</span> v<span class="br0">(</span><span class="nu0">8</span><span class="br0">)</span><span class="sy4">;</span>
v.<span class="me1">push_back</span><span class="br0">(</span><span class="nu0">42</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<p>&#21487;&#33021;&#30340;&#36755;&#20986;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="text source-text">
<pre class="de1">Alloc: 32 bytes at 0x2020c20
Alloc: 64 bytes at 0x2023c60
Dealloc: 32 bytes at 0x2020c20
Dealloc: 64 bytes at 0x2023c60</pre></div>
</div>
</div>
<h3><span class="mw-headline" id=".E7.BC.BA.E9.99.B7.E6.8A.A5.E5.91.8A">&#32570;&#38519;&#25253;&#21578;</span></h3>
<p>&#19979;&#21015;&#26356;&#25913;&#34892;&#20026;&#30340;&#32570;&#38519;&#25253;&#21578;&#36861;&#28335;&#22320;&#24212;&#29992;&#20110;&#20197;&#21069;&#20986;&#29256;&#30340; C++ &#26631;&#20934;&#12290;</p>
<table class="dsctable" style="font-size:0.8em">
<tr>
<th>DR</th>
<th>&#24212;&#29992;&#20110;</th>
<th>&#20986;&#29256;&#26102;&#30340;&#34892;&#20026;</th>
<th>&#27491;&#30830;&#34892;&#20026;</th>
</tr>
<tr>
<td><a rel="nofollow" class="external text" href="https://cplusplus.github.io/LWG/issue179">LWG 179</a></td>
<td>C++98</td>
<td>&#26410;&#35201;&#27714; <code>pointer</code> &#19982; <code>const_pointer</code> &#21487;&#30456;&#20114;&#27604;&#36739;</td>
<td>&#24050;&#35201;&#27714;</td>
</tr>
<tr>
<td><a rel="nofollow" class="external text" href="https://wg21.link/P0593R6">P0593R6</a></td>
<td>C++98</td>
<td>&#26410;&#35201;&#27714; <code>allocate</code> &#22312;&#20854;&#25152;&#20998;&#37197;&#30340;&#23384;&#20648;&#20013;&#21019;&#24314;&#25968;&#32452;</td>
<td>&#24050;&#35201;&#27714;</td>
</tr>
<tr>
<td><a rel="nofollow" class="external text" href="https://cplusplus.github.io/LWG/issue2016">LWG 2016</a></td>
<td>C++11</td>
<td>&#20998;&#37197;&#22120;&#30340;&#22797;&#21046;&#12289;&#31227;&#21160;&#19982;&#20132;&#25442;&#25805;&#20316;&#22312;&#20351;&#29992;&#26102;&#21487;&#33021;&#25243;&#20986;</td>
<td>&#35201;&#27714;&#19981;&#25243;&#20986;</td>
</tr>
<tr>
<td><a rel="nofollow" class="external text" href="https://cplusplus.github.io/LWG/issue2263">LWG 2263</a></td>
<td>C++11</td>
<td>LWG179 &#30340;&#35299;&#20915;&#26041;&#26696;&#22312; C++11 &#20013;&#24847;&#22806;&#20002;&#22833;<br />
&#19988;&#26410;&#34987;&#25512;&#24191;&#21040; <code>void_pointer</code> &#19982; <code>const_void_pointer</code></td>
<td>&#24674;&#22797;&#24182;&#25512;&#24191;</td>
</tr>
<tr>
<td><a rel="nofollow" class="external text" href="https://cplusplus.github.io/LWG/issue2593">LWG 2593</a></td>
<td>C++11</td>
<td>&#20174;&#20998;&#37197;&#22120;&#31227;&#21160;&#21487;&#33021;&#20462;&#25913;&#20854;&#20540;</td>
<td>&#31105;&#27490;&#20462;&#25913;</td>
</tr>
</table>
</div>
<div class="visualClear"></div>
</div>
</div>
</div>
</body>
</html>