亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 筆記整理:stl in acm--greedy hawk 焚書煲粥.htm

?? stl跟 acm的關系
?? HTM
?? 第 1 頁 / 共 2 頁
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0036)http://yxhome.bokee.com/5057457.html -->
<HTML><HEAD><TITLE>筆記整理:STL in ACM--Greedy Hawk | 焚書煲粥</TITLE>
<META http-equiv=Content-Type content="text/html; charset=GBK">
<META http-equiv=Pragma content=no-cache>
<META http-equiv=Cache-Control content=no-cache>
<META http-equiv=Expires content=0>
<META 
content="5.13   訪問量突破20000筆記整理:STL in ACMTOJ Weekly Contest 1 總結  博客 博客中國 博客動力 blog blogdriver blogger 中國" 
name=description>
<META 
content="Greedy Hawk | 焚書煲粥 5.13   訪問量突破20000筆記整理:STL in ACMTOJ Weekly Contest 1 總結 博客 博客中國 博客動力 blog blogdriver blogger 中國" 
name=keywords><LINK href="筆記整理:STL in ACM--Greedy Hawk  焚書煲粥.files/diary.css" 
type=text/css rel=stylesheet>
<SCRIPT language=JavaScript 
src="筆記整理:STL in ACM--Greedy Hawk  焚書煲粥.files/UBB.js"></SCRIPT>

<SCRIPT src="筆記整理:STL in ACM--Greedy Hawk  焚書煲粥.files/blog.js" 
type=text/javascript></SCRIPT>

<META content="MSHTML 6.00.2900.2802" name=GENERATOR></HEAD>
<BODY>
<DIV id=container>
<DIV id=header>
<H1 class=title><A href="http://yxhome.bokee.com/index.html">Greedy Hawk | 
焚書煲粥</A></H1></DIV>
<DIV id=category><A title=上一篇 href="http://yxhome.bokee.com/5047229.html">5.13 
訪問量突破20000</A>- -| <A href="http://yxhome.bokee.com/index.html">回首頁</A> | <A 
href="http://yxhome.bokee.com/catalog_2006.html">2006年索引</A> | - -<A title=下一篇 
href="http://yxhome.bokee.com/5086024.html">TOJ Weekly Contest 1 總結</A></DIV>
<DIV class=entity>
<H2 class=diaryTitle>筆記整理:STL in 
ACM</H2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 

<P>
<P><FONT face=宋體,sans-serif>C++筆記整理(2006.5.15)</FONT></P>
<P><FONT face=宋體,sans-serif>昨天晚上聽了RoBa講的&lt; STL in ACM 
&gt;,感覺收獲頗豐。此前一直想自己看STL,但每每看到那玄之又玄的術語,如“容器”,“迭代器”等等,總是看得云里霧里,昨天聽他一講,有恍然大悟的感覺。<BR>把筆記整理了一下,以后便于以后查閱。</FONT></P>
<P><FONT face=宋體,sans-serif>STL : Standard Template Library 
標準模版庫<BR>//有人說:這是給C++中最激動人心的東西,取了一個最無聊的名字。</FONT></P>
<P><FONT face=宋體,sans-serif>重要的概念:</FONT></P>
<P><FONT face=宋體,sans-serif>容器(container): <BR><VECTOR /><LIST /><SET 
  /><MAP>…<BR>//容器一詞聽上去很高深,其實說白了也是類似于對象的東西,但又和對象有點區別。<BR>迭代器(iterator): 
  指針<BR>//這個名詞就更玄了,其實就是類似于指針的東西。</MAP></FONT></P>
<P><FONT face=宋體,sans-serif><VECTOR />內部實現: 數組 // 
就是沒有固定大小的數組,vector直接翻譯是向量的意思<BR>vector <T, alloc="" /><BR>// T 
就是數據類型,Alloc是關于內存的一個什么東西,RoBa沒有仔細講,一般是使用默認參數。<BR>支持操作:<BR>begin(), 
//取首個元素,返回一個iterator<BR>end(), //取末尾(最后一個元素的下一個存儲空間的地址)<BR>size(), 
//就是數組大小的意思<BR>clear(), //清空<BR>empty(), //判斷vector是否為空<BR>[ ]&nbsp; 
//很神奇的東東,可以和數組一樣操作<BR>//舉例: vector <INT />a;&nbsp;&nbsp; 
//定義了一個vector<BR>//然后我們就可以用a[i]來直接訪問a中的第i + 1個元素!和數組的下標一模一樣!<BR>push_back(), 
pop_back() //從末尾插入或彈出<BR>insert() O(N)&nbsp; 
//插入元素,O(n)的復雜度<BR>erase()&nbsp;O(N)&nbsp; 
//刪除某個元素,O(n)的復雜度<BR>可以用于數組大小不定且空間緊張的情況</FONT></P>
<P><FONT face=宋體,sans-serif>Sample: TOJ1743 King’s Treasure&nbsp; 
//這題如果直接開數組的話,需要開到一個240,000 * 240,000的二維數組<BR>代碼:<BR>#include <CSTDIO 
/><BR>#include <VECTOR /><BR>using namespace std;</FONT></P>
<P><FONT face=宋體,sans-serif>vector <INT />a[240010]; //一個vector組成的數組!</FONT></P>
<P><FONT face=宋體,sans-serif>int main()<BR>{<BR>&nbsp;int 
cases,n,i,t,head,tail,src,pans;<BR>&nbsp;scanf("%d",&amp;cases);<BR>&nbsp;while 
(cases--) {<BR>&nbsp;&nbsp;scanf("%d",&amp;n);<BR>&nbsp;&nbsp;for (i = 1 ; i 
&lt;= n ; i++) a[i].clear();<BR>&nbsp;&nbsp;for (i = 2 ; i &lt;= n ; i++) 
{<BR>&nbsp;&nbsp;&nbsp;scanf("%d",&amp;t);<BR>&nbsp;&nbsp;&nbsp;a[i].push_back(t);<BR>&nbsp;&nbsp;&nbsp;a[t].push_back(i);<BR>&nbsp;&nbsp;}<BR>............</FONT></P>
<P><FONT face=宋體,sans-serif>Iterator用法舉例:<BR>#include <VECTOR /><BR>#include 
<CSTDIO /><BR>using namespace std;<BR>int main()<BR>{<BR>&nbsp;int 
n,i;<BR>&nbsp;vector <INT />vi; //類似于我們定義一個數組,同 int vi[1000]; 
但vector的大小是自動調整的<BR>&nbsp;vector <INT />::iterator itr;&nbsp; 
//兩個冒號,很怪的定義方式,但就是這么定義的<BR>&nbsp;while (scanf("%d",&amp;n) != 
EOF)<BR>&nbsp;&nbsp;vi.push_back(n);<BR>&nbsp;for (i = 0 ; i &lt; vi.size() ; 
i++)<BR>&nbsp;&nbsp;printf("%d\n",vi[i]);<BR>&nbsp;for (itr = vi.begin() ; itr 
!= vi.end() ; itr++) 
//也支持++操作<BR>&nbsp;&nbsp;printf("%d\n",*itr);<BR>&nbsp;return 
0;&nbsp;<BR>}</FONT></P>
<P><FONT face=宋體,sans-serif><DEQUE />類似<VECTOR />&nbsp;&nbsp; 
//雙端隊列,兩頭都支持進出<BR>支持push_front()和pop_front()&nbsp; <BR><STACK />是<VECTOR 
/>的精簡版:)&nbsp; //棧,只支持從末尾進出<BR>支持push(), pop(), top()<BR><QUEUE />是<DEQUE 
/>的精簡版&nbsp;&nbsp; //單端隊列,就是我們平時所說的隊列,一頭進,另一頭出<BR>支持push(), pop(), front(), 
back()</FONT></P>
<P><FONT face=宋體,sans-serif><LIST />內部實現: 雙向鏈表&nbsp; 
//作用和vector差不多,但內部是用鏈表實現<BR>list<T, alloc="" /> <BR>支持操作:<BR>begin(), end(), 
size(), clear(), empty()<BR>push_back(), pop_back()&nbsp; //從末尾插入或刪除元素 
<BR>push_front(), pop_front() <BR>insert() O(1)&nbsp; 
//鏈表實現,所以插入和刪除的復雜度的O(1)<BR>erase()&nbsp;O(1)<BR>sort()&nbsp;O(nlogn),不同于<ALGORITHM 
/>中的sort<BR>//不支持[ ]操作!</FONT></P>
<P><FONT face=宋體,sans-serif><SET />內部實現: 紅黑樹 //Red-Black 
Tree,一種平衡的二叉排序樹<BR>set<KEY, alloc="" compare,="" /> 
//又是一個Compare函數,類似于qsort函數里的那個Compare函數,作為紅黑樹在內部實現的比較方式<BR>insert() 
O(logn)<BR>erase() O(logn)<BR>find() O(logn) 找不到返回a.end()<BR>lower_bound() 
O(logn) 查找第一個不小于k的元素<BR>upper_bound() O(logn) 查找第一個大于k的元素<BR>equal_range() 
O(logn) 返回pair<LOWER,UPPER /></FONT></P>
<P><FONT face=宋體,sans-serif><MULTISET />允許重復元素的<SET /></FONT></P>
<P><FONT face=宋體,sans-serif><SET />的用法及Compare函數示例:<BR>struct SS {int 
x,y;};<BR>struct ltstr { <BR>&nbsp;bool operator() (SS a, SS b)<BR>&nbsp;{return 
a.x &lt; b.x;}&nbsp; //注意,按C語言習慣,double型要寫成這樣:return a.x &lt; b.x ? 1 : 
0;<BR>};<BR>int main() <BR>{ <BR>&nbsp;set <SS, ltstr="" 
/>st;<BR>&nbsp;…<BR>}</FONT></P>
<P><FONT face=宋體,sans-serif><MAP>內部實現: pair<KEY,VALUE />組成的紅黑樹&nbsp; 
  //map中文意思:印射!!<BR>map<KEY, alloc="" compare,="" data,="" /> //就是很多pair <KEY, 
  data="" />組成一個紅黑樹<BR>insert() O(logn)<BR>erase() O(logn)<BR>find() O(logn) 
  找不到返回a.end()<BR>lower_bound() O(logn) 查找第一個不小于k的元素<BR>upper_bound() O(logn) 
  查找第一個大于k的元素<BR>equal_range() O(logn) 返回pair<LOWER,UPPER /><BR>[key]運算符 O(logn) 
  *** 
  //這個..太猛了,怎么說呢,數組有一個下標,如a[i],這里i是int型的。數組可以認為是從int印射到另一個類型的印射,而map是一個任意的印射,所以i可以是任何類型的!</MAP></FONT></P>
<P><FONT face=宋體,sans-serif><MULTIMAP />允許重復元素, 沒有[]運算符</FONT></P>
<P><FONT face=宋體,sans-serif>Sample : TOJ 1378 Babelfish </FONT></P>
<P><FONT face=宋體,sans-serif>Code: (0.4k)&nbsp; //只有0.4K的代碼....<BR>#include 
<CSTDIO /><BR>#include <STRING /><BR>#include <MAP><BR>using namespace 
std;</MAP></FONT></P>
<P><FONT face=宋體,sans-serif>map <STRING,STRING />mp;</FONT></P>
<P><FONT face=宋體,sans-serif>int main()<BR>{<BR>&nbsp;char 
buf[100],s1[100],s2[100];<BR>&nbsp;while (gets(buf)) {<BR>&nbsp;&nbsp;if 
(strlen(buf) == 0) 
break;<BR>&nbsp;&nbsp;sscanf(buf,"%s%s",s1,s2);<BR>&nbsp;&nbsp;mp[(string)s2] = 
(string)s1;&nbsp;//這里的string s2,起到了類似于數組下標的作用!!<BR>&nbsp;}&nbsp;<BR>&nbsp;while 
(gets(buf)) {<BR>&nbsp;&nbsp;if (mp.find((string)buf) != 
mp.end())<BR>&nbsp;&nbsp;&nbsp;printf("%s\n",mp[(string)buf].c_str());&nbsp; 
//mp[(string)buf]返回值是string類型,要轉化成C語言能識別的字符串數組,加上.c_str()即可<BR>&nbsp;&nbsp;else 
printf("eh\n");<BR>&nbsp;}<BR>return 0;<BR>}</FONT></P>
<P><FONT face=宋體,sans-serif><PRIORITY_QUEUE />內部實現: 堆&nbsp;&nbsp; 
//優先隊列,聽RoBa講得,似乎知道原理了,但不明白干什么用的<BR>priority_queue<T, compare="" sequence,="" 
/><BR>支持操作:<BR>push() O(n)<BR>pop() O(n)<BR>top() O(1)<BR>See also: push_heap(), 
pop_heap() … in<BR><ALGORITHM /></FONT></P>
<P><FONT face=宋體,sans-serif>用法舉例:<BR>#include <QUEUE /><BR>#include <VECTOR 
/><BR>using namespace std;</FONT></P>
<P><FONT face=宋體,sans-serif>priority_queue <INT 
/>maxheap;&nbsp;//int最大堆</FONT></P>
<P><FONT face=宋體,sans-serif>struct ltstr {&nbsp;&nbsp; 
//又是這么個Compare函數,重載運算符???不明白為什么要這么寫...反正這個Compare函數對我來說是相當之神奇。RoBa說了,照著這么寫就是了。<BR>&nbsp;bool 
operator()(int a,int b) <BR>&nbsp;{return a &gt; b;}<BR>};<BR>priority_queue 
<INT,VECTOR<INT />,ltstr&gt; minheap;&nbsp;//int最小堆</FONT></P>
<P><FONT face=宋體,sans-serif><HASH_MAP />內部實現: Hash表, of course 
&#61514;//內部用哈希表實現的map,據說還不是現在的C++標準,但因為太好用了,所以估計早晚要成為標準的~<BR>hash_map<KEY, alloc="" 
data,="" equalkey,="" hashfcn,="" 
/><BR>重載HashFcn和EqualKey<BR>支持操作:<BR>insert();&nbsp;O(1)<BR>earse();&nbsp;O(1)<BR>[ 
]; &nbsp;&nbsp;O(1)<BR>示例:Again TOJ 1378 Babelfish <BR>See also: <HASH_SET 
/><HASH_MULTIMAP /><HASH_MULTISET /></FONT></P>
<P><FONT face=宋體,sans-serif>#include <CSTDIO /><BR>#include <HASH_MAP.H 
/>&nbsp;//??&nbsp;&nbsp; //因為不是C++標準,所以要加.h <BR>#include <STRING /><BR>using 
namespace std;</FONT></P>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产99久久久国产精品免费看| 国产精品不卡在线观看| 亚洲v精品v日韩v欧美v专区| 欧美性猛交xxxx乱大交退制版| 五月激情丁香一区二区三区| 欧美精品乱人伦久久久久久| 青青草成人在线观看| 久久色视频免费观看| 懂色av中文一区二区三区| 亚洲精品亚洲人成人网在线播放| 精品视频一区三区九区| 美女性感视频久久| 国产欧美一区二区精品性| 91麻豆国产在线观看| 婷婷开心久久网| 国产清纯美女被跳蛋高潮一区二区久久w| 成人av午夜电影| 亚洲超碰97人人做人人爱| 日韩免费福利电影在线观看| 欧美色图在线观看| 美脚の诱脚舐め脚责91 | 偷拍一区二区三区| 日韩精品在线看片z| av一二三不卡影片| 三级影片在线观看欧美日韩一区二区 | 免费看日韩精品| 亚洲国产成人午夜在线一区| 欧美日韩激情一区二区三区| 国产剧情一区二区| 午夜婷婷国产麻豆精品| 中文无字幕一区二区三区| 欧美精品色一区二区三区| 成人午夜激情影院| 日韩精品三区四区| 成人免费一区二区三区在线观看| 3751色影院一区二区三区| www.一区二区| 久久国产综合精品| 亚洲一区二区黄色| 欧美经典三级视频一区二区三区| 欧美电影影音先锋| 色噜噜狠狠一区二区三区果冻| 国内偷窥港台综合视频在线播放| 亚洲精品视频一区二区| 国产日韩三级在线| 日韩欧美一区电影| 欧美日本一区二区三区| 91视频在线观看| 国产精品996| 精品一区二区综合| 日本亚洲免费观看| 亚洲主播在线播放| 亚洲欧美日韩小说| 国产精品国产a| 亚洲精品一区二区三区影院 | 日韩精品一区二区三区视频在线观看 | 99re热这里只有精品视频| 韩国三级在线一区| 天堂蜜桃91精品| 亚洲一级二级三级在线免费观看| 国产精品狼人久久影院观看方式| 2023国产精华国产精品| 日韩一区二区电影在线| 欧美日韩小视频| 欧美日本在线视频| 欧美日韩不卡视频| 3d动漫精品啪啪| 91精品国产综合久久久久久| 欧美色男人天堂| 欧美日韩精品一区二区三区蜜桃 | 日韩精品一区二区三区四区| 91精品啪在线观看国产60岁| 91成人免费网站| 欧美系列一区二区| 欧美性做爰猛烈叫床潮| 欧洲一区二区三区免费视频| 91免费视频网址| 99精品热视频| 在线观看日韩国产| 欧美伊人精品成人久久综合97 | 日韩影院免费视频| 日韩激情av在线| 美女免费视频一区二区| 精品无人区卡一卡二卡三乱码免费卡| 蜜臂av日日欢夜夜爽一区| 精品一区二区在线看| 国产乱码精品一区二区三区忘忧草| 久久99精品久久久久婷婷| 国产在线视频一区二区| 国产一区二区视频在线| 成人黄色综合网站| 在线观看欧美黄色| 日韩免费在线观看| 国产午夜精品一区二区三区视频| 国产精品嫩草影院com| 亚洲精品中文在线| 免费看欧美女人艹b| 国产黑丝在线一区二区三区| 99免费精品在线观看| 欧美三级电影一区| 日韩欧美国产三级| 国产精品高潮久久久久无| 一个色妞综合视频在线观看| 日本强好片久久久久久aaa| 国产一区 二区 三区一级| 91在线观看免费视频| 精品视频一区三区九区| 久久久久久久综合日本| 亚洲黄色av一区| 日本不卡高清视频| 成人免费视频免费观看| 欧美老女人第四色| 久久精品亚洲乱码伦伦中文| 一区二区三区影院| 国产另类ts人妖一区二区| 91高清在线观看| 精品国产乱码久久久久久浪潮| 国产精品进线69影院| 爽爽淫人综合网网站| 从欧美一区二区三区| 欧美午夜宅男影院| 欧美国产视频在线| 日本网站在线观看一区二区三区| 不卡av在线免费观看| 777精品伊人久久久久大香线蕉| 国产欧美精品一区| 日本午夜精品视频在线观看| 色综合天天综合网天天看片| 欧美变态口味重另类| 亚洲一区二区欧美| 波多野结衣在线一区| 精品国一区二区三区| 午夜欧美2019年伦理| 色综合色狠狠天天综合色| 精品国产成人在线影院| 亚洲成人av中文| 91老师国产黑色丝袜在线| 久久午夜羞羞影院免费观看| 日韩精品久久理论片| 在线视频国内自拍亚洲视频| 国产精品理论片| 国产精品一区二区三区乱码| 日韩一区二区在线免费观看| 亚洲精品v日韩精品| 成人毛片在线观看| 国产欧美一区二区精品忘忧草| 日韩成人午夜电影| 欧美在线色视频| 亚洲免费三区一区二区| 成人福利视频网站| 国产欧美日韩亚州综合| 精品写真视频在线观看| 欧美第一区第二区| 美女网站色91| 日韩一区二区三区在线视频| 亚洲电影视频在线| 欧美日韩1234| 视频一区视频二区中文| 欧美片在线播放| 亚洲高清免费观看高清完整版在线观看| 不卡av免费在线观看| 国产精品久久毛片av大全日韩| 成人天堂资源www在线| 国产午夜精品一区二区三区四区| 国产乱码字幕精品高清av | 91精品国产综合久久久久久| 无吗不卡中文字幕| 欧美一区永久视频免费观看| 天天综合日日夜夜精品| 91精品欧美福利在线观看| 日韩高清在线观看| 日韩女优av电影| 国产精品18久久久| 欧美激情一区二区三区蜜桃视频| 国产91清纯白嫩初高中在线观看| 日本一区二区视频在线| aaa欧美色吧激情视频| 一区二区三区在线影院| 欧美日本精品一区二区三区| 日韩成人精品视频| 久久久天堂av| 成人app网站| 亚洲成人三级小说| 精品国产欧美一区二区| 国产高清精品在线| 最新中文字幕一区二区三区 | 日韩欧美国产综合一区 | 337p粉嫩大胆噜噜噜噜噜91av| 精品一区二区av| 欧美激情一二三区| 在线观看欧美精品| 久久国产福利国产秒拍| 亚洲国产精品传媒在线观看| 欧美综合在线视频| 看片网站欧美日韩| 亚洲欧美一区二区三区国产精品| 欧美无乱码久久久免费午夜一区 | 日韩欧美成人激情| 丁香一区二区三区| 亚洲国产精品一区二区久久|