C++中map用法(二)

Map是c++的一个标准容器,它提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作!
1.<wbr><wbr>map构造函数;<br><wbr><wbr><wbr><wbr>map&lt;string , int &gt;mapstring;<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>map&lt;int ,string &gt;mapint;<br><wbr><wbr><wbr><wbr>map&lt;sring, char&gt;mapstring;<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>map&lt; char ,string&gt;mapchar;<br><wbr><wbr><wbr><wbr>map&lt;char ,int&gt;mapchar;<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>map&lt;int ,char &gt;mapint;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

2.<wbr><wbr>map添加数据;<br><wbr><wbr><wbr><wbr>map&lt;int ,string&gt; maplive;<wbr><wbr><wbr><wbr><br><wbr><wbr><wbr><wbr>1.maplive.insert(pair&lt;int,string&gt;(102,"aclive"));<br><wbr><wbr><wbr><wbr>2.maplive.insert(map&lt;int,string&gt;::value_type(321,"hai"));<br><wbr><wbr><wbr><wbr>3, maplive[112]="April";//map中最简单最常用的插入添加!<br> 3,map中元素的查找:</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr>find()函数返回一个迭代器指向键值为key的元素,如果没找到就返回指向map尾部的迭代器。<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr>map&lt;int ,string &gt;::iterator l_it;;<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr>l_it=maplive.find(112);<br><wbr><wbr><wbr><wbr><wbr><wbr>if(l_it==maplive.end())<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>cout&lt;&lt;"we do not find 112"&lt;&lt;endl;<br><wbr><wbr><wbr><wbr>else cout&lt;&lt;"wo find 112"&lt;&lt;endl;<br> 4,map中元素的删除:<br><wbr><wbr><wbr><wbr>如果删除112;<br><wbr><wbr><wbr><wbr>map&lt;int ,string &gt;::iterator l_it;;<br><wbr><wbr><wbr><wbr>l_it=maplive.find(112);<br><wbr><wbr><wbr><wbr>if(l_it==maplive.end())<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>cout&lt;&lt;"we do not find 112"&lt;&lt;endl;<br><wbr><wbr><wbr><wbr>else<wbr><wbr>maplive.erase(l_it);<wbr><wbr>//delete 112;<br> 5,map中 swap的用法:<br><wbr><wbr>Map中的swap不是一个容器中的元素交换,而是两个容器交换;<br><wbr><wbr>For example:<br><wbr><wbr>#include &lt;map&gt;<br><wbr><wbr>#include &lt;iostream&gt;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr>using namespace std;<br></wbr></wbr></wbr></wbr>

<wbr><wbr>int main( )<br><wbr><wbr>{<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>map &lt;int, int&gt; m1, m2, m3;<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>map &lt;int, int&gt;::iterator m1_Iter;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>m1.insert ( pair &lt;int, int&gt;<wbr><wbr>( 1, 10 ) );<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>m1.insert ( pair &lt;int, int&gt;<wbr><wbr>( 2, 20 ) );<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>m1.insert ( pair &lt;int, int&gt;<wbr><wbr>( 3, 30 ) );<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>m2.insert ( pair &lt;int, int&gt;<wbr><wbr>( 10, 100 ) );<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>m2.insert ( pair &lt;int, int&gt;<wbr><wbr>( 20, 200 ) );<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>m3.insert ( pair &lt;int, int&gt;<wbr><wbr>( 30, 300 ) );</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr>cout &lt;&lt; "The original map m1 is:";<br><wbr><wbr><wbr><wbr>for ( m1_Iter = m1.begin( ); m1_Iter != m1.end( ); m1_Iter++ )<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>cout &lt;&lt; " " &lt;&lt; m1_Iter-&gt;second;<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>cout<wbr><wbr><wbr><wbr>&lt;&lt; "." &lt;&lt; endl;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr>// This is the member function version of swap<br><wbr><wbr><wbr><wbr>//m2 is said to be the argument map; m1 the target map<br><wbr><wbr><wbr><wbr>m1.swap( m2 );</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr>cout &lt;&lt; "After swapping with m2, map m1 is:";<br><wbr><wbr><wbr><wbr>for ( m1_Iter = m1.begin( ); m1_Iter != m1.end( ); m1_Iter++ )<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>cout &lt;&lt; " " &lt;&lt; m1_Iter -&gt; second;<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>cout<wbr><wbr>&lt;&lt; "." &lt;&lt; endl;<br><wbr><wbr><wbr><wbr>cout &lt;&lt; "After swapping with m2, map m2 is:";<br><wbr><wbr><wbr><wbr>for ( m1_Iter = m2.begin( ); m1_Iter != m2.end( ); m1_Iter++ )<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>cout &lt;&lt; " " &lt;&lt; m1_Iter -&gt; second;<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>cout<wbr><wbr>&lt;&lt; "." &lt;&lt; endl;<br><wbr><wbr><wbr><wbr>// This is the specialized template version of swap<br><wbr><wbr><wbr><wbr>swap( m1, m3 );</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr>cout &lt;&lt; "After swapping with m3, map m1 is:";<br><wbr><wbr><wbr><wbr>for ( m1_Iter = m1.begin( ); m1_Iter != m1.end( ); m1_Iter++ )<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>cout &lt;&lt; " " &lt;&lt; m1_Iter -&gt; second;<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>cout<wbr><wbr><wbr><wbr>&lt;&lt; "." &lt;&lt; endl;<br> }</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

6.map的sort问题:
<wbr><wbr>Map中的元素是自动按key升序排序,所以不能对map用sort函数:<br><wbr><wbr>For example:<br><wbr><wbr>#include &lt;map&gt;<br><wbr><wbr>#include &lt;iostream&gt;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr>using namespace std;<br></wbr></wbr></wbr></wbr>

<wbr><wbr>int main( )<br><wbr><wbr>{<br><wbr><wbr><wbr><wbr><wbr><wbr>map &lt;int, int&gt; m1;<br><wbr><wbr><wbr><wbr>map &lt;int, int&gt;::iterator m1_Iter;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr>m1.insert ( pair &lt;int, int&gt;<wbr><wbr>( 1, 20 ) );<br><wbr><wbr><wbr><wbr>m1.insert ( pair &lt;int, int&gt;<wbr><wbr>( 4, 40 ) );<br><wbr><wbr><wbr><wbr>m1.insert ( pair &lt;int, int&gt;<wbr><wbr>( 3, 60 ) );<br><wbr><wbr><wbr><wbr>m1.insert ( pair &lt;int, int&gt;<wbr><wbr>( 2, 50 ) );<br><wbr><wbr><wbr><wbr>m1.insert ( pair &lt;int, int&gt;<wbr><wbr>( 6, 40 ) );<br><wbr><wbr><wbr><wbr>m1.insert ( pair &lt;int, int&gt;<wbr><wbr>( 7, 30 ) );</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr>cout &lt;&lt; "The original map m1 is:"&lt;&lt;endl;<br><wbr><wbr><wbr><wbr>for ( m1_Iter = m1.begin( ); m1_Iter != m1.end( ); m1_Iter++ )<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>cout &lt;&lt;<wbr><wbr>m1_Iter-&gt;first&lt;&lt;" "&lt;&lt;m1_Iter-&gt;second&lt;&lt;endl;<br><wbr><wbr><wbr><wbr><br> }<br><wbr><wbr>The original map m1 is:<br><wbr><wbr>1 20<br><wbr><wbr>2 50<br><wbr><wbr>3 60<br><wbr><wbr>4 40<br><wbr><wbr>6 40<br><wbr><wbr>7 30<br><wbr><wbr>请按任意键继续. . .</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

7,<wbr><wbr><wbr><wbr>map的基本操作函数:<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>C++ Maps是一种关联式容器,包含“关键字/值”对<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>begin()<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>返回指向map头部的迭代器<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>clear()<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>删除所有元素<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>count()<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>返回指定元素出现的次数<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>empty()<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>如果map为空则返回true<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>end()<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>返回指向map末尾的迭代器<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>equal_range()<wbr><wbr><wbr><wbr><wbr><wbr>返回特殊条目的迭代器对<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>erase()<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>删除一个元素<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>find()<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>查找一个元素<br><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值