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

199 lines
17 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>std::map&lt;Key,T,Compare,Allocator&gt;::begin, std::map&lt;Key,T,Compare,Allocator&gt;::cbegin</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_map_begin skin-cppreference2 action-view cpp-page-template 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%">std::map&lt;Key,T,Compare,Allocator&gt;::</span>begin, <span style="font-size:0.7em; line-height:130%">std::map&lt;Key,T,Compare,Allocator&gt;::</span>cbegin</h1>
<div id="bodyContent">
<div id="contentSub"><span class="subpages">&lt; <a href="cpp.html">cpp</a>&lrm; | <a href="cpp-container.html">container</a>&lrm; | <a href="cpp-container-map.html">map</a></span></div>
<div id="mw-content-text" lang="zh" dir="ltr" class="mw-content-ltr" xml:lang="zh">
<div class="t-page-template" style="">
<p></p>
</div>
<table class="t-dcl-begin">
<tbody></tbody>
<tbody class="t-dcl-rev">
<tr class="t-dcl t-until-cxx11">
<td>
<div><span class="mw-geshi cpp source-cpp">iterator begin<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span></span></div>
</td>
<td class="t-dcl-nopad"></td>
<td><span class="t-mark-rev t-until-cxx11">(C++11 &#21069;)</span></td>
</tr>
<tr class="t-dcl t-since-cxx11">
<td>
<div><span class="mw-geshi cpp source-cpp">iterator begin<span class="br0">(</span><span class="br0">)</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-cxx11">(C++11 &#36215;)</span></td>
</tr>
</tbody>
<tbody></tbody>
<tbody class="t-dcl-rev">
<tr class="t-dcl t-until-cxx11">
<td>
<div><span class="mw-geshi cpp source-cpp">const_iterator begin<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-rev t-until-cxx11">(C++11 &#21069;)</span></td>
</tr>
<tr class="t-dcl t-since-cxx11">
<td>
<div><span class="mw-geshi cpp source-cpp">const_iterator begin<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-cxx11">(C++11 &#36215;)</span></td>
</tr>
</tbody>
<tbody>
<tr class="t-dcl t-since-cxx11">
<td>
<div><span class="mw-geshi cpp source-cpp">const_iterator cbegin<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-cxx11">(C++11 &#36215;)</span></td>
</tr>
<tr class="t-dcl-sep">
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<p>&#36820;&#22238;&#25351;&#21521; <code>map</code> &#39318;&#20803;&#32032;&#30340;&#36845;&#20195;&#22120;&#12290;</p>
<p>&#33509; <code>map</code> &#20026;&#31354;&#65292;&#21017;&#36820;&#22238;&#30340;&#36845;&#20195;&#22120;&#23558;&#31561;&#20110; <span class="t-lc"><a href="cpp-container-map-end.html">end()</a></span> &#12290;</p>
<div class="t-image">
<p><img alt="range-begin-end.svg" src="range-begin-end.svg" width="546" height="157" /></p>
</div>
<h3><span class="mw-headline" id=".E5.8F.82.E6.95.B0">&#21442;&#25968;</span></h3>
<p>&#65288;&#26080;&#65289;</p>
<h3><span class="mw-headline" id=".E8.BF.94.E5.9B.9E.E5.80.BC">&#36820;&#22238;&#20540;</span></h3>
<p>&#25351;&#21521;&#39318;&#20803;&#32032;&#30340;&#36845;&#20195;&#22120;&#12290;</p>
<h3><span class="mw-headline" id=".E5.A4.8D.E6.9D.82.E5.BA.A6">&#22797;&#26434;&#24230;</span></h3>
<p>&#24120;&#25968;&#12290;</p>
<p><br /></p>
<h3><span class="mw-headline" id=".E7.A4.BA.E4.BE.8B">&#31034;&#20363;</span></h3>
<div class="t-example">
<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;iostream&gt;</span>
<span class="co2">#include &lt;map&gt;</span>
<span class="kw4">int</span> main<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span>
<a href="cpp-container-map.html"><span class="kw1281">std::<span class="me2">map</span></span></a><span class="sy1">&lt;</span><span class="kw4">int</span>, <span class="kw4">float</span><span class="sy1">&gt;</span> num_map<span class="sy4">;</span>
num_map<span class="br0">[</span><span class="nu0">4</span><span class="br0">]</span> <span class="sy1">=</span> <span class="nu16">4.13</span><span class="sy4">;</span>
num_map<span class="br0">[</span><span class="nu0">9</span><span class="br0">]</span> <span class="sy1">=</span> <span class="nu16">9.24</span><span class="sy4">;</span>
num_map<span class="br0">[</span><span class="nu0">1</span><span class="br0">]</span> <span class="sy1">=</span> <span class="nu16">1.09</span><span class="sy4">;</span>
<span class="co1">// &#35843;&#29992; a_map.begin() &#19982; a_map.end()</span>
<span class="kw1">for</span> <span class="br0">(</span><span class="kw4">auto</span> it <span class="sy1">=</span> num_map.<span class="me1">begin</span><span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span> it <span class="sy3">!</span><span class="sy1">=</span> num_map.<span class="me1">end</span><span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span> <span class="sy2">++</span>it<span class="br0">)</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> it<span class="sy2">-</span><span class="sy1">&gt;</span>first <span class="sy1">&lt;&lt;</span> <span class="st0">&quot;, &quot;</span> <span class="sy1">&lt;&lt;</span> it<span class="sy2">-</span><span class="sy1">&gt;</span>second <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></pre></div>
</div>
<p>&#36755;&#20986;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="text source-text">
<pre class="de1">1, 1.09
4, 4.13
9, 9.24</pre></div>
</div>
</div>
<h4><span class="mw-headline" id=".E4.BD.BF.E7.94.A8.E5.AE.9A.E5.88.B6.E6.AF.94.E8.BE.83.E5.87.BD.E6.95.B0.E7.9A.84.E7.A4.BA.E4.BE.8B">&#20351;&#29992;&#23450;&#21046;&#27604;&#36739;&#20989;&#25968;&#30340;&#31034;&#20363;</span></h4>
<div class="t-example">
<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;cmath&gt;</span>
<span class="co2">#include &lt;iostream&gt;</span>
<span class="co2">#include &lt;map&gt;</span>
<span class="kw1">struct</span> Point <span class="br0">{</span> <span class="kw4">double</span> x, y<span class="sy4">;</span> <span class="br0">}</span><span class="sy4">;</span>
<span class="co1">// &#27604;&#36739;&#20108;&#20010; Pointer &#25351;&#38024;&#30340; x &#22352;&#26631;</span>
<span class="kw1">struct</span> PointCmp <span class="br0">{</span>
<span class="kw4">bool</span> operator<span class="br0">(</span><span class="br0">)</span><span class="br0">(</span><span class="kw4">const</span> Point <span class="sy2">*</span>lhs, <span class="kw4">const</span> Point <span class="sy2">*</span>rhs<span class="br0">)</span> <span class="kw4">const</span> <span class="br0">{</span>
<span class="kw1">return</span> lhs<span class="sy2">-</span><span class="sy1">&gt;</span>x <span class="sy1">&lt;</span> rhs<span class="sy2">-</span><span class="sy1">&gt;</span>x<span class="sy4">;</span>
<span class="br0">}</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw4">int</span> main<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span>
<span class="co1">// &#27880;&#24847;&#23613;&#31649; x &#22352;&#26631;&#20081;&#24207;&#65292;&#20134;&#23558;&#25353;&#29031;&#36882;&#22686;&#30340; x &#22352;&#26631;&#36845;&#20195; map</span>
Point points<span class="br0">[</span><span class="nu0">3</span><span class="br0">]</span> <span class="sy1">=</span> <span class="br0">{</span> <span class="br0">{</span><span class="nu0">2</span>, <span class="nu0">0</span><span class="br0">}</span>, <span class="br0">{</span><span class="nu0">1</span>, <span class="nu0">0</span><span class="br0">}</span>, <span class="br0">{</span><span class="nu0">3</span>, <span class="nu0">0</span><span class="br0">}</span> <span class="br0">}</span><span class="sy4">;</span>
<span class="co1">// mag &#26159;&#21457;&#36865;&#32467;&#28857;&#22320;&#22336;&#21040;&#20854;&#22312; x-y &#24179;&#38754;&#20013;&#38271;&#24230;&#30340; map</span>
<span class="co1">// &#23613;&#31649;&#38190;&#20026;&#25351;&#21521; Point &#30340;&#25351;&#38024;&#65292;&#25105;&#20204;&#24076;&#26395;&#25353;&#29031;&#28857;&#30340; x &#22352;&#26631;&#32780;&#38750;&#28857;&#30340;&#22320;&#22336;&#20026; map &#36171;&#24207;&#12290;</span>
<span class="co1">// &#36890;&#36807;&#29992; PointCmp &#31867;&#30340;&#27604;&#36739;&#26041;&#27861;&#36827;&#34892;&#12290;</span>
<a href="cpp-container-map.html"><span class="kw1281">std::<span class="me2">map</span></span></a><span class="sy1">&lt;</span>Point <span class="sy2">*</span>, <span class="kw4">double</span>, PointCmp<span class="sy1">&gt;</span> mag<span class="br0">(</span><span class="br0">{</span>
<span class="br0">{</span> points, <span class="nu0">2</span> <span class="br0">}</span>,
<span class="br0">{</span> points <span class="sy2">+</span> <span class="nu0">1</span>, <span class="nu0">1</span> <span class="br0">}</span>,
<span class="br0">{</span> points <span class="sy2">+</span> <span class="nu0">2</span>, <span class="nu0">3</span> <span class="br0">}</span>
<span class="br0">}</span><span class="br0">)</span><span class="sy4">;</span>
<span class="co1">// &#20174; 0 &#21040;&#38271;&#24230;&#26356;&#25913;&#27599;&#20010; y &#22352;&#26631;</span>
<span class="kw1">for</span><span class="br0">(</span><span class="kw4">auto</span> iter <span class="sy1">=</span> mag.<span class="me1">begin</span><span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span> iter <span class="sy3">!</span><span class="sy1">=</span> mag.<span class="me1">end</span><span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span> <span class="sy2">++</span>iter<span class="br0">)</span><span class="br0">{</span>
<span class="kw4">auto</span> cur <span class="sy1">=</span> iter<span class="sy2">-</span><span class="sy1">&gt;</span>first<span class="sy4">;</span> <span class="co1">// &#25351;&#21521; Point &#30340;&#25351;&#38024;</span>
cur<span class="sy2">-</span><span class="sy1">&gt;</span>y <span class="sy1">=</span> mag<span class="br0">[</span>cur<span class="br0">]</span><span class="sy4">;</span> <span class="co1">// &#20134;&#33021;&#29992; cur-&gt;y = iter-&gt;second;</span>
<span class="br0">}</span>
<span class="co1">// &#26356;&#26032;&#24182;&#25171;&#21360;&#27599;&#20010;&#28857;&#30340;&#38271;&#24230;</span>
<span class="kw1">for</span><span class="br0">(</span><span class="kw4">auto</span> iter <span class="sy1">=</span> mag.<span class="me1">begin</span><span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span> iter <span class="sy3">!</span><span class="sy1">=</span> mag.<span class="me1">end</span><span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span> <span class="sy2">++</span>iter<span class="br0">)</span><span class="br0">{</span>
<span class="kw4">auto</span> cur <span class="sy1">=</span> iter<span class="sy2">-</span><span class="sy1">&gt;</span>first<span class="sy4">;</span>
mag<span class="br0">[</span>cur<span class="br0">]</span> <span class="sy1">=</span> <a href="cpp-numeric-math-hypot.html"><span class="kw1331">std::<span class="me2">hypot</span></span></a><span class="br0">(</span>cur<span class="sy2">-</span><span class="sy1">&gt;</span>x, cur<span class="sy2">-</span><span class="sy1">&gt;</span>y<span class="br0">)</span><span class="sy4">;</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="st0">&quot;The magnitude of (&quot;</span> <span class="sy1">&lt;&lt;</span> cur<span class="sy2">-</span><span class="sy1">&gt;</span>x <span class="sy1">&lt;&lt;</span> <span class="st0">&quot;, &quot;</span> <span class="sy1">&lt;&lt;</span> cur<span class="sy2">-</span><span class="sy1">&gt;</span>y <span class="sy1">&lt;&lt;</span> <span class="st0">&quot;) is &quot;</span><span class="sy4">;</span>
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> iter<span class="sy2">-</span><span class="sy1">&gt;</span>second <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="co1">// &#20197;&#22522;&#20110;&#33539;&#22260;&#30340; for &#24490;&#29615;&#37325;&#22797;&#19978;&#36848;&#20869;&#23481;</span>
<span class="kw1">for</span><span class="br0">(</span><span class="kw4">auto</span> i <span class="sy4">:</span> mag<span class="br0">)</span> <span class="br0">{</span>
<span class="kw4">auto</span> cur <span class="sy1">=</span> i.<span class="me1">first</span><span class="sy4">;</span>
cur<span class="sy2">-</span><span class="sy1">&gt;</span>y <span class="sy1">=</span> i.<span class="me1">second</span><span class="sy4">;</span>
mag<span class="br0">[</span>cur<span class="br0">]</span> <span class="sy1">=</span> <a href="cpp-numeric-math-hypot.html"><span class="kw1331">std::<span class="me2">hypot</span></span></a><span class="br0">(</span>cur<span class="sy2">-</span><span class="sy1">&gt;</span>x, cur<span class="sy2">-</span><span class="sy1">&gt;</span>y<span class="br0">)</span><span class="sy4">;</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="st0">&quot;The magnitude of (&quot;</span> <span class="sy1">&lt;&lt;</span> cur<span class="sy2">-</span><span class="sy1">&gt;</span>x <span class="sy1">&lt;&lt;</span> <span class="st0">&quot;, &quot;</span> <span class="sy1">&lt;&lt;</span> cur<span class="sy2">-</span><span class="sy1">&gt;</span>y <span class="sy1">&lt;&lt;</span> <span class="st0">&quot;) is &quot;</span><span class="sy4">;</span>
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> mag<span class="br0">[</span>cur<span class="br0">]</span> <span class="sy1">&lt;&lt;</span> <span class="st0">&#39;<span class="es1">\n</span>&#39;</span><span class="sy4">;</span>
<span class="co1">// &#27880;&#24847;&#19982;&#19978;&#36848; std::cout &lt;&lt; iter-&gt;second &lt;&lt; &#39;\n&#39;; &#30456;&#21453;&#65292;</span>
<span class="co1">// std::cout &lt;&lt; i.second &lt;&lt; &#39;\n&#39;; &#23558;&#19981;&#25171;&#21360;&#26356;&#26032;&#30340;&#38271;&#24230;</span>
<span class="br0">}</span>
<span class="br0">}</span></pre></div>
</div>
<p>&#36755;&#20986;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="text source-text">
<pre class="de1">The magnitude of (1, 1) is 1.41421
The magnitude of (2, 2) is 2.82843
The magnitude of (3, 3) is 4.24264
The magnitude of (1, 1.41421) is 1.73205
The magnitude of (2, 2.82843) is 3.4641
The magnitude of (3, 4.24264) is 5.19615</pre></div>
</div>
</div>
<h3><span class="mw-headline" id=".E5.8F.82.E9.98.85">&#21442;&#38405;</span></h3>
<table class="t-dsc-begin">
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-container-map-end.html"><span class="t-lines"><span>end</span> <span>cend</span></span></a></div>
<div><span class="t-lines"><span></span><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td>&#36820;&#22238;&#25351;&#21521;&#26411;&#23614;&#30340;&#36845;&#20195;&#22120;<br />
<span class="t-mark">(&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
</table>
<table class="t-dcl-begin">
<tbody></tbody>
</table>
</div>
<div class="visualClear"></div>
</div>
</div>
</div>
</body>
</html>