⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 online judge论坛-acm-icpc-[第08篇]acm-icpc竞赛之stl--map.htm

📁 stl跟 acm的关系
💻 HTM
📖 第 1 页 / 共 5 页
字号:
  for (i=0; i<(args.length-2); i+=3) if (obj) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

function DispMagicEmot(MagicID,H,W){
	MagicFaceUrl = "Dv_plus/tools/magicface/swf/" + MagicID + ".swf";
	document.getElementById("MagicFace").innerHTML = '<OBJECT codeBase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,2,0" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="' + W + '" height="' + H + '"><PARAM NAME=movie VALUE="'+ MagicFaceUrl +'"><param name=menu value=false><PARAM NAME=quality VALUE=high><PARAM NAME=play VALUE=false><param name="wmode" value="transparent"><embed src="' + MagicFaceUrl +'" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="' + W + '" height="' + H + '"></embed>';
	document.getElementById("MagicFace").style.top = (document.body.scrollTop+((document.body.clientHeight-300)/2))+"px";
	document.getElementById("MagicFace").style.left = (document.body.scrollLeft+((document.body.clientWidth-480)/2))+"px";
	document.getElementById("MagicFace").style.visibility = 'visible';
	MagicID += Math.random();
	setTimeout("MM_showHideLayers('MagicFace','','hidden')",5000);
	NowMeID = MagicID;
}

//-->
</SCRIPT>

<table cellpadding=0 cellspacing=0 border=0 width="98%" align="center">
<tr>
<td align="left" width="35%" valign="middle" nowrap>&nbsp;
<a href="post.asp?action=new&boardid=9"><img src="Skins/Default/postnew.gif" border="0" alt="发表一个新帖子"></a>&nbsp;&nbsp;<a href="post.asp?action=vote&boardid=9"><img src="Skins/Default/votenew.gif" border="0" alt="发起一个新投票"></a>&nbsp;&nbsp;<a href="post.asp?action=re&BoardID=9&ID=42&star=1&page=1"><img src="Skins/Default/mreply.gif" border="0" alt="回复本主题"></a>
</td>
<td align="right" width="65%" valign="middle" nowrap>您是本帖的第 <B>273</B> 个阅读者</td>
</tr>
</table>

<TABLE cellPadding=0 cellSpacing=0 align=center class=tableborder4>
<tr>
<th align=left valign=middle width="70%" height=25>
&nbsp; 标题:<font color=red>[第08篇]ACM/ICPC竞赛之STL--map</font> </th>
<th align=right width="30%" id=nobold>
<a href="?BoardID=9&replyID=42&id=42&skin=1" title="树形显示贴子">树形</a>&nbsp;&nbsp;
<a href="TopicOther.asp?t=5&BoardID=9&id=42" target=_blank title="打印本贴内容">打印</a>&nbsp;&nbsp;
<a href="favlist.asp?action=add&BoardID=9&id=42" title="将本贴加入论坛收藏夹">收藏</a>&nbsp;&nbsp;
<a href="TopicOther.asp?t=7&BoardID=9&id=42" title="推荐本贴给好友">推荐</a>&nbsp;&nbsp;
</th>
</tr>
</table><Script Language=JavaScript>var star='1';var alertcolor='#FF0000';var Board_Setting27='10';var TopicNum='4';var TotalUseTable='dv_bbs1';var GetMoneyType=0;var GroupUserName = new Array(); GroupUserName[1]='<b><font color="#FF0000">§</font></b>';GroupUserName[2]='<font color=#DA2549 face="Verdana"><b>§</b></font>';GroupUserName[3]='<font color=#DA2549 face="Verdana"><b>§</b></font>';GroupUserName[4]='<font color="#61B713" face="Verdana"><b>§</b></font>';GroupUserName[5]='§';GroupUserName[6]='§';GroupUserName[7]='§';GroupUserName[8]='<font color=#DA2549 face="Verdana"><b>§</b></font>';GroupUserName[9]='<font color="#61B713" face="Verdana"><b>§</b></font>';GroupUserName[10]='<font color="#61B713" face="Verdana"><b>§</b></font>';GroupUserName[11]='<font color="#61B713" face="Verdana"><b>§</b></font>';GroupUserName[12]='<font color="#61B713" face="Verdana"><b>§</b></font>';GroupUserName[13]='<font color="#61B713" face="Verdana"><b>§</b></font>';GroupUserName[14]='<font color="#61B713" face="Verdana"><b>§</b></font>';GroupUserName[15]='<font color="#61B713" face="Verdana"><b>§</b></font>';GroupUserName[16]='<font color="#61B713" face="Verdana"><b>§</b></font>';GroupUserName[17]='<font color="#61B713" face="Verdana"><b>§</b></font>';GroupUserName[18]='<font color="#61B713" face="Verdana"><b>§</b></font>';GroupUserName[19]='<font color="#61B713" face="Verdana"><b>§</b></font>';GroupUserName[20]='<font color="#61B713" face="Verdana"><b>§</b></font>';GroupUserName[21]='<font color="#61B713" face="Verdana"><b>§</b></font>';GroupUserName[22]='<font color="#61B713" face="Verdana"><b>§</b></font>';GroupUserName[23]='<font color="#61B713" face="Verdana"><b>§</b></font>';GroupUserName[24]='<font color="#61B713" face="Verdana"><b>§</b></font>';GroupUserName[25]='<font color="#61B713" face="Verdana"><b>§</b></font>';</Script>

<script type="text/javascript" language="javascript">
var mstr=new Array();
function astro(birth)
{
	if (birth!='')
	{	var tmpstr;
		var bstr;
		var mm;
		var yy;
		var dd;
		var birthmonth;
		tmpstr=birth.split(' ')
		bstr=tmpstr[0]
		tmpstr=bstr.split('-')
		yy=(tmpstr[0]*1)
		mm=(tmpstr[1]*1)
		dd=(tmpstr[2]*1)
		switch(mm){
		case 1 :
		if(dd>=21){return('<img src=Skins/Default/birth/z11.gif alt=水瓶座'+mm+'-'+dd+'>');}
		else{return('<img src=Skins/Default/birth/z10.gif alt=魔羯座'+mm+'-'+dd+'>');}
		break;
		case 2 :
		if(dd>=20){return('<img src=Skins/Default/birth/z12.gif alt=双鱼座'+mm+'-'+dd+'>');}
		else{return('<img src=Skins/Default/birth/z11.gif alt=水瓶座'+mm+'-'+dd+'>');}
		break;
		case 3 :
		if(dd>=21){return('<img src=Skins/Default/birth/z1.gif alt=白羊座'+mm+'-'+dd+'>');}
		else{return('<img src=Skins/Default/birth/z12.gif alt=双鱼座'+mm+'-'+dd+'>');}
		break;
		case 4 :
		if(dd>=21){return('<img src=Skins/Default/birth/z2.gif alt=金牛座'+mm+'-'+dd+'>');}
		else{return('<img src=Skins/Default/birth/z1.gif alt=白羊座'+mm+'-'+dd+'>');}
		break;
		case 5 :
		if(dd>=22){return('<img src=Skins/Default/birth/z3.gif alt=双子座'+mm+'-'+dd+'>');}
		else{return('<img src=Skins/Default/birth/z2.gif alt=金牛座'+mm+'-'+dd+'>');}
		break;
		case 6 :
		if(dd>=22){return('<img src=Skins/Default/birth/z4.gif alt=巨蟹座'+mm+'-'+dd+'>');}
		else{return('<img src=Skins/Default/birth/z3.gif alt=双子座'+mm+'-'+dd+'>');}
		break;
		case 7 :
		if(dd>=23){return('<img src=Skins/Default/birth/z5.gif alt=狮子座'+mm+'-'+dd+'>');}
		else{return('<img src=Skins/Default/birth/z4.gif alt=巨蟹座'+mm+'-'+dd+'>');}
		break;
		case 8 :
		if(dd>=24){return('<img src=Skins/Default/birth/z6.gif alt=处女座'+mm+'-'+dd+'>');}
		else{return('<img src=Skins/Default/birth/z5.gif alt=狮子座'+mm+'-'+dd+'>');}
		break;
		case 9 :
		if(dd>=24){return('<img src=Skins/Default/birth/z7.gif alt=天秤座'+mm+'-'+dd+'>');}
		else{return('<img src=Skins/Default/birth/z6.gif alt=处女座'+mm+'-'+dd+'>');}
		break;
		case 10 :
		if(dd>=24){return('<img src=Skins/Default/birth/z8.gif alt=天蝎座'+mm+'-'+dd+'>');}
		else{return('<img src=Skins/Default/birth/z7.gif alt=天秤座'+mm+'-'+dd+'>');}
		break;
		case 11 :
		if(dd>=23){return('<img src=Skins/Default/birth/z9.gif alt=射手座'+mm+'-'+dd+'>');}
		else{return('<img src=Skins/Default/birth/z8.gif alt=天蝎座'+mm+'-'+dd+'>');}
		break;
		case 12 :
		if(dd>=22){return('<img src=Skins/Default/birth/z10.gif alt=魔羯座'+mm+'-'+dd+'>');}
		else{return('<img src=Skins/Default/birth/z9.gif alt=射手座'+mm+'-'+dd+'>');}
		break;
		default : return('');
}
	}else{return('');}
}
function usercolor(UserGroupID,UserName)
{
UserGroupID = parseInt(UserGroupID);
var UserNameStyle=GroupUserName[UserGroupID].split("§");
return(UserNameStyle[0]+UserName+UserNameStyle[1]);
}
</script>
	<a name="152" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema"></a><table cellPadding="5" cellSpacing="1" align="center" class="tableborder1" style="table-layout:fixed;word-break:break-all" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema">
<tr>
<td class="tablebody1" valign="top" width="175">
<table width="100%" cellpadding="4" cellspacing="0">
<tr>
<td width="*" valign="middle" style="filter:glow(color=#9898BA,strength=2)">&nbsp;&nbsp;&nbsp;&nbsp;<script type="text/javascript" language="javascript">document.write (usercolor('1','Teacher彭'));</script></td>
<td width="25" valign="middle"><img src="Skins/Default/ofMale.gif" alt="帅哥哟,离线,有人找我吗?"></td>
<td width="16" valign="middle"><script type="text/javascript" language="javascript">document.write (astro(''));</script></td>
</tr>
</table>&nbsp;&nbsp;&nbsp;&nbsp;<img src="Images/userface/image1.gif" width="32" height="32"><br>&nbsp;&nbsp;&nbsp;&nbsp;<img src="Skins/Default/star/level20.gif"><br>&nbsp;&nbsp;&nbsp;&nbsp;等级:管理员<br>&nbsp;&nbsp;&nbsp;&nbsp;文章:801<br>&nbsp;&nbsp;&nbsp;&nbsp;积分:6804<br>&nbsp;&nbsp;&nbsp;&nbsp;注册:2005-09-02</td>
<td class="tablebody1" valign="top" height="100%">
<table width="100%" height="30">
<tr>
<td width="*" align="absmiddle"><a href="http://wpa.qq.com/msgrd?V=1&amp;Uin=515957164&amp;Site=By Dvbbs&amp;Menu=yes" title="点击发送QQ消息给Teacher彭" target="_blank"><img src="http://wpa.qq.com/pa?p=1:515957164:4" border="0" width="16" height="16" align="absmiddle"></a>&nbsp;<a href="http://wpa.qq.com/msgrd?V=1&amp;Uin=515957164&amp;Site=By Dvbbs&amp;Menu=yes" title="点击发送QQ消息给Teacher彭">QQ</a>&nbsp;<a href="messanger.asp?action=new&amp;touser=Teacher%C5%ED" target="_blank"><img src="Skins/Default/message.gif" border="0" alt="给Teacher彭发送一个短消息" align="absmiddle"></a> <a href="friendlist.asp?action=addF&amp;myFriend=Teacher%C5%ED" target="_blank"><img src="Skins/Default/friend.gif" border="0" alt="把Teacher彭加入好友" align="absmiddle"></a> <a href="dispuser.asp?id=2" target="_blank"><img src="Skins/Default/profile.gif" border="0" alt="查看Teacher彭的个人资料" align="absmiddle"></a> <a href="query.asp?stype=1&amp;nSearch=3&amp;keyword=Teacher%C5%ED&amp;BoardID=9&amp;SearchDate=ALL" target="_blank"><img src="Skins/Default/find.gif" border="0" alt="搜索Teacher彭在的所有贴子" align="absmiddle"></a> <a href="mailto:pengsw@mail.buct.edu.cn"><img alt="点击这里发送电邮给Teacher彭" border="0" src="Skins/Default/email.gif" align="absmiddle"></a>&nbsp;<a href="http://coder.buct.edu.cn" target="_blank"><img alt="访问Teacher彭的主页" border="0" src="Skins/Default/homepage.gif" align="absmiddle"></a><a href="post.asp?action=re&amp;BoardID=9&amp;replyID=152&amp;id=42&amp;star=1&amp;reply=true"><img src="Skins/Default/reply.gif" border="0" alt="引用回复这个贴子" align="absmiddle"></a> <a href="post.asp?action=re&amp;BoardID=9&amp;replyID=152&amp;id=42&amp;star=1"><img src="Skins/Default/reply_a.gif" border="0" alt="回复这个贴子" align="absmiddle"></a></td>
<td width="70" align="right"> 楼主</td>
</tr>
<tr>
<td height="1" colspan="3" class="singleborder"></td>
</tr>
<tr>
<td height="2" colspan="3"></td>
</tr>
</table>
<table border="0" align="center" width="95%" height="85%" style="table-layout:fixed;word-break:break-all">
<tr>
<td width="*" height="100%" style="font-size:9pt;line-height:12pt" valign="top"><img src="Skins/Default/topicface/face1.gif" border="0" alt="发贴心情" align="absmiddle"> <B>[第08篇]ACM/ICPC竞赛之STL--map</B><BR><H1 align=center>第08篇 ACM/ICPC竞赛之STL--map</H1><P>在STL的头文件&lt;map&gt;中定义了模板类map和multimap,用有序二叉树来存贮类型为pair&lt;const Key, T&gt;的元素对序列。序列中的元素以const Key部分作为标识,map中所有元素的Key值都必须是唯一的,multimap则允许有重复的Key值。</P><P>可以将map看作是由Key标识元素的元素集合,这类容器也被称为“关联容器”,可以通过一个Key值来快速确定一个元素,因此非常适合于需要按照Key值查找元素的容器。</P><P>map模板类需要四个模板参数,第一个是键值类型,第二个是元素类型,第三个是比较算子,第四个是分配器类型。其中键值类型和元素类型是必要的。</P><P>map的基本操作有:</P><P>1、定义map对象,例如:</P><BLOCKQUOTE><P>map&lt;string, int&gt; m;</P></BLOCKQUOTE><P>2、向map中插入元素对,有多种方法,例如:</P><BLOCKQUOTE><P>m[key] = value; <br>[key]操作是map很有特色的操作,如果在map中存在键值为key的元素对,则返回该元素对的值域部分,否则将会创建一个键值为key的元素对,值域为默认值。所以可以用该操作向map中插入元素对或修改已经存在的元素对的值域部分。</P><P>m.insert( make_pair(key, value) );<br>也可以直接调用insert方法插入元素对,insert操作会返回一个pair,当map中没有与key相匹配的键值时,其first是指向插入元素对的迭代器,其second为true;若map中已经存在与key相等的键值时,其first是指向该元素对的迭代器,second为false。</P></BLOCKQUOTE><P>3、查找元素对,例如:</P><BLOCKQUOTE><P>int i = m[key]; <br>要注意的是,当与该键值相匹配的元素对不存在时,会创建键值为key的元素对。</P><P>map&lt;string, int&gt;::iterator it = m.find(key);<br>如果map中存在与key相匹配的键值时,find操作将返回指向该元素对的迭代器,否则,返回的迭代器等于map的end()(参见vector中提到的begin和end操作)。</P></BLOCKQUOTE><P>4、删除元素对,例如:</P><BLOCKQUOTE><P>m.erase(key);<br>删除与指定key键值相匹配的元素对,并返回被删除的元素的个数。</P><P>m.erase(it);<br>删除由迭代器it所指定的元素对,并返回指向下一个元素对的迭代器。</P></BLOCKQUOTE><P>看一段简单的示例代码:</P><FONT style="FONT-SIZE: 10.5pt" face=arial,sans-serif color=#000000 size=-1><BLOCKQUOTE><PRE>#include&lt;map&gt;<br>#include&lt;iostream&gt;<br> <br>using namespace std;<br> <br>typedef map&lt;int, string, less&lt;int&gt; &gt; M_TYPE;<br>typedef M_TYPE::iterator M_IT;<br>typedef M_TYPE::const_iterator M_CIT;<br> <br><FONT color=navy><B>int</B></FONT> main()<br><FONT color=navy>{</FONT><br>&nbsp;M_TYPE MyTestMap;<br>&nbsp;<br>&nbsp;MyTestMap[3] = <FONT color=red>"No.3"</FONT>;<br>&nbsp;MyTestMap[5] = <FONT color=red>"No.5"</FONT>;<br>&nbsp;MyTestMap[1] = <FONT color=red>"No.1"</FONT>;<br>&nbsp;MyTestMap[2] = <FONT color=red>"No.2"</FONT>;<br>&nbsp;MyTestMap[4] = <FONT color=red>"No.4"</FONT>;<br>&nbsp;<br>&nbsp;M_IT it_stop = MyTestMap.find(2);<br>&nbsp;<br>&nbsp;cout &lt;&lt; <FONT color=red>"MyTestMap[2] = "</FONT> &lt;&lt; it_stop-&gt;second &lt;&lt; endl;<br>&nbsp;it_stop-&gt;second = <FONT color=red>"No.2 After modification"</FONT>;<br>&nbsp;cout &lt;&lt; <FONT color=red>"MyTestMap[2] = "</FONT> &lt;&lt; it_stop-&gt;second &lt;&lt; endl;<br>&nbsp;<br>&nbsp;cout &lt;&lt; <FONT color=red>"Map contents : "</FONT> &lt;&lt; endl;<br>&nbsp;<FONT color=navy><B>for</B></FONT>(M_CIT it = MyTestMap.begin(); it != MyTestMap.end(); it++)<br>&nbsp;<FONT color=navy>{</FONT><br>&nbsp;&nbsp;cout &lt;&lt; it-&gt;second &lt;&lt; endl;<br>&nbsp;<FONT color=navy>}</FONT><br>&nbsp;<br>&nbsp;<FONT color=navy><B>return</B></FONT> 0;<br><FONT color=navy>}</FONT></PRE></BLOCKQUOTE></FONT><P>程序执行的输出结果为:</P><BLOCKQUOTE><P><FONT style="FONT-SIZE: 10.5pt" face=arial,sans-serif color=#000000 size=-1>MyTestMap[2] = No.2<br>MyTestMap[2] = No.2 After modification<br>Map contents :<br>No.1<br>No.2 After modification<br>No.3<br>No.4<br>No.5</FONT> </P></BLOCKQUOTE><P>再看一段简单的示例代码:</P><BLOCKQUOTE><P>#include &lt;iostream&gt;<br>#include &lt;map&gt;<br>using namespace std;<br>main()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;map&lt;string, int&gt; m;<br>&nbsp;&nbsp;&nbsp;&nbsp;m["one"] = 1;<br>&nbsp;&nbsp;&nbsp;&nbsp;m["two"] = 2;<br>&nbsp;&nbsp;&nbsp;&nbsp;// 几种不同的insert调用方法<br>&nbsp;&nbsp;&nbsp;&nbsp;m.insert(make_pair("three", 3));<br>&nbsp;&nbsp;&nbsp;&nbsp;m.insert(map&lt;string, int&gt;::value_type("four", 4));<br>&nbsp;&nbsp;&nbsp;&nbsp;m.insert(pair&lt;string, int&gt;("five", 5));<br><br>&nbsp;&nbsp;&nbsp;&nbsp;string key;<br>&nbsp;&nbsp;&nbsp;&nbsp;while (cin&gt;&gt;key)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map&lt;string, int&gt;::iterator it = m.find(key);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (it==m.end())<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt; "No such key!" &lt;&lt; endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt; key &lt;&lt; " is " &lt;&lt; it-&gt;second &lt;&lt; endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt; "Erased " &lt;&lt; m.erase(key) &lt;&lt; endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;return 1;<br>}</P></BLOCKQUOTE></td>
</tr>
<tr><td><img src="Skins/Default/sigline.gif"><br>☆ Teacher 彭 ☆</td></tr>
<tr><td>
<div class="info"><img src="Skins/Default/jing.gif" border="0" title="本贴被加为精华" align="absmiddle">&nbsp;&nbsp;</div>
</td></tr>
</table>
</td>
</tr>
<tr>
<td class="tablebody1" valign="middle" align="center" width="175"><img align="absmiddle" border="0" src="Skins/Default/ip.gif" alt="发贴IP已设置保密"> 2005-10-05 22:00</td>
<td class="tablebody1" valign="middle" width="*">
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td valign="middle" align="left" width="*">&nbsp;&nbsp;</td>
<td nowarp="true" valign="bottom" width="130" align="left"></td>
<td valign="middle" width="170" align="right"><a href="post.asp?action=edit&amp;BoardID=9&amp;replyID=152&amp;ID=42&amp;star=1"><img align="absmiddle" border="0" src="Skins/Default/edit.gif"></a>&nbsp;&nbsp;<a class="ImgOnclick" onMouseOver="showmenu(event,'','Menu_0');"><img align="absmiddle" border="0" src="Skins/Default/topicmanage.gif"></a>&nbsp;&nbsp;<a href="#top"><img align="absmiddle" border="0" src="Skins/Default/p_up.gif"></a></td>
<td valign="middle" align="left">
</td>
</tr>
</table>
</td>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -