STL

(筆記) 如何判斷回文(palindrome) ? (C/C++) (C) (STL)
摘要: 回文是學習C語言時,常出現的作業與考題。阅读全文

posted @ 2008-10-27 01:26 真 OO无双 阅读(2826) | 评论 (3) 编辑

(原創) 如何將struct塞進vector? (C/C++) (STL)
摘要: 一個很常見的需求:『將struct塞進vector』,在C++該怎麼做呢?阅读全文

posted @ 2008-08-01 16:16 真 OO无双 阅读(5460) | 评论 (6) 编辑

(原創) C++ string大亂鬥:C-Style string、STL string與.NET string互轉 (.NET) (C/C++) (C++/CLI) (STL)
摘要: 由於C++/CLI的加入,現在Visual C++ 9最少就有三種字串:C-Style string、STL string與.NET string,要怎麼在這三種字串互轉呢?阅读全文

posted @ 2008-07-24 00:19 真 OO无双 阅读(5581) | 评论 (9) 编辑

(原創) iterator到底是不是pointer? (C/C++) (STL)
摘要: 使用iterator時,能使用pointer的*、++、--與->等操作,到底iterator是不是pointer呢?阅读全文

posted @ 2008-07-21 13:22 真 OO无双 阅读(5196) | 评论 (1) 编辑

(原創) 如何為程式碼加上行號? (C/C++) (STL)
摘要: 若需要將程式碼放進word交報告時,或許我們會想將程式碼加上行號方便講解,如同博客園顯示程式碼那樣?我們該如何做呢?阅读全文

posted @ 2008-07-18 01:54 真 OO无双 阅读(1998) | 评论 (2) 编辑

(原創) 如何将字符串前后的空白去除? (C/C++) (STL)
摘要: 在(原創) 如何将字符串前后的空白去除? (中级) (C++) (使用string.find_first_not_of, string.find_last_not_of) 中已经可顺利将字符串前后的空白去除,且程序相当的精简,在此用另外一种方式达到此要求,且可同时将whitespace去除,并且使用template写法。阅读全文

posted @ 2008-07-15 21:00 真 OO无双 阅读(1961) | 评论 (2) 编辑

(原創) 如何列出陣列中大於n的所有元素? (C/C++) (STL)
摘要: 若用C語言配合迴圈,這是個很簡單的題目,但若用C++配合STL,則有很漂亮的寫法。阅读全文

posted @ 2008-02-06 20:51 真 OO无双 阅读(869) | 评论 (1) 编辑

(原創) 如何使用STL寫XML轉檔程式? (C/C++) (STL) (Web) (XML)
摘要: 寫文字檔轉檔程式是很常見的需求,一般來說,這種都屬於dirty job,沒什麼技巧,純粹是迴圈硬幹,若使用STL來寫轉檔程式,不只程式超短,一個迴圈都不需要!!阅读全文

posted @ 2008-01-30 12:07 真 OO无双 阅读(2367) | 评论 (10) 编辑

(原創) 如何使用C++的標準函式庫進行排序? (C/C++) (STL)
摘要: 前一篇談到使用C語言stdlib.h的qsort()對array進行排序,C++呢?STL也提供了sort() algorithm。阅读全文

posted @ 2008-01-29 10:58 真 OO无双 阅读(4564) | 评论 (8) 编辑

(原創) 我的VS2008之旅[1] : STL/CLR (.NET) (C++/CLI) (STL) (C/C++)
摘要: VS2008最讓我有興趣的,首推LINQ,其次就是STL/CLR和Lambda了,LINQ在博客園討論的人已經很多,所以我將VS2008之旅首站駛往STL/CLR。阅读全文

posted @ 2007-08-08 19:16 真 OO无双 阅读(5344) | 评论 (3) 编辑

(原創) 如何刪除container中重複的element? (C/C++) (STL)
摘要: STL並沒有提供這樣的algorithm,透過簡單的方法,就可以達成這個需求。阅读全文

posted @ 2007-05-27 14:56 真 OO无双 阅读(686) | 评论 (0) 编辑

(轉貼) STL算法学习 (C/C++) (STL)

posted @ 2007-05-23 04:11 真 OO无双 阅读(2212) | 评论 (0) 编辑

(原創) 如何使for_each()傳回值? (C/C++) (STL)
摘要: for_each()是STL中少數可以回傳值的algorithm,此範例在展示for_each()此特殊功能與function object可以留住state的特性。阅读全文

posted @ 2007-05-13 20:29 真 OO无双 阅读(730) | 评论 (0) 编辑

(原創) 如何正確的使用迴圈(使用for_each)? (C/C++) (STL) (template)
摘要: 之前在(原創) 如何使用for_each() algorithm? (初级) (C++) 曾經討論過for_each(),不過當時功力尚淺,只談到了皮毛而已,這次看了effective STL的item 41、43後,對for_each()又有了更深入的了解,因此做了本篇心得報告。阅读全文

posted @ 2007-05-12 15:48 真 OO无双 阅读(3813) | 评论 (1) 编辑

(原創) 如何將container中的iterator,從一個值取代成另外一個值? (C/C++) (STL)
摘要: 若想將container中的iterator,從一個值取代成另外一個值,但container並沒有提供replace()這個member function,而是提供了replace()這個Generic Algorithm。阅读全文

posted @ 2007-04-19 15:33 真 OO无双 阅读(455) | 评论 (0) 编辑

(原創) 如何使用Function Object? (C/C++) (STL)
摘要: 很多STL algorithm都是_if結尾的,讓我們可以帶function進去,若配合function object,可讓function更有彈性!!阅读全文

posted @ 2007-01-18 02:39 真 OO无双 阅读(2387) | 评论 (0) 编辑

(原創) 如何讀取文字檔? (C/C++) (STL)
摘要: 讀取文字檔有很多方式,在此歸納出最精簡的程式寫法。阅读全文

posted @ 2006-12-17 20:09 真 OO无双 阅读(8871) | 评论 (1) 编辑

(原創) 如何使用reverse_iterator? (C/C++) (STL)
摘要: STL提供了reverse_iterator,讓你反過來處理container中的iterator...阅读全文

posted @ 2006-12-17 19:50 真 OO无双 阅读(1491) | 评论 (0) 编辑

(原創) 如何列出multimap中某個key的所有value? (C/C++) (STL)
摘要: multimap提供了三種方式列出某個key的所有value。阅读全文

posted @ 2006-12-16 22:19 真 OO无双 阅读(1585) | 评论 (6) 编辑

(原創) 如何找出兩個container中相同元素的個數? (C/C++) (STL)
摘要: find_first_of() algorithm強的地方就是能從一個container中所有元素中去搜尋另外一個container,利用find_first_of()可找出兩個container中相同元素的個數。阅读全文

posted @ 2006-12-14 17:05 真 OO无双 阅读(342) | 评论 (0) 编辑

(原創) 如何使用find_first_of() algorithm? (C/C++) (STL)
摘要: find() algorithm一次只能找一個條件,若要同時找多個條件,需使用find_first_of()。阅读全文

posted @ 2006-12-14 15:25 真 OO无双 阅读(892) | 评论 (0) 编辑

(原創) 如何使用multimap? 如何使用StringStream解析文字檔? (C/C++) (STL)
摘要: map迷人之處在於一次存key和value兩個值,且key是唯一的,但若遇到key可重複的情況呢?STL另外提供了multimap...阅读全文

posted @ 2006-12-14 10:27 真 OO无双 阅读(2887) | 评论 (0) 编辑

(原創) 將map輸出到cout,是否有更方便的方法? (C/C++) (STL)
摘要: 大家都體會過sequential container搭配copy() algorithm,只要一行程式就可以將所有值輸出到cout,map這種associative container就無法用這一招,是否有其它方式解決呢?阅读全文

posted @ 2006-12-14 09:16 真 OO无双 阅读(533) | 评论 (0) 编辑

(原創) 如何使用remove_copy_if() algorithm? (C/C++) (STL)
摘要: STL algorithm中,並沒有copy_if()可用,但可用remove_copy_if()達到要求。阅读全文

posted @ 2006-12-11 12:35 真 OO无双 阅读(666) | 评论 (0) 编辑

(原創) 如何使用unique() algorithm? (C/C++) (STL)
摘要: 初學者學unique()會覺得很困擾,發現結果並非unique....阅读全文

posted @ 2006-12-11 10:54 真 OO无双 阅读(1363) | 评论 (1) 编辑

(原創) 如何使用for_each() algorithm? (C/C++) (STL)
摘要: C++沒提供foreach語法,但提供了for_each() algorithm,這和transform() algorithm有什麼不同呢?阅读全文

posted @ 2006-12-10 04:10 真 OO无双 阅读(390) | 评论 (0) 编辑

(原創) 如何使用stable_sort() algorithm? (C/C++) (STL)
摘要: 此範例demo stable_sort()的用法,並且解釋其和sort() algorithm的相異之處。阅读全文

posted @ 2006-12-10 02:59 真 OO无双 阅读(2482) | 评论 (1) 编辑

(原創) 如何利用copy() algorithm將array輸出到cout? (C/C++) (STL)
摘要: STL的Algorithm除了用在STL的Container外,也能用在array喔!!阅读全文

posted @ 2006-12-10 01:23 真 OO无双 阅读(525) | 评论 (0) 编辑

如何使用istream_iterator將文字檔轉到vector? (C/C++) (STL)
摘要: stream_iterator除了能用在cin,還可以用在fstream和stringstream,此範例使用stream_iterator搭配copy() algorithm,將文字檔轉到vector,再從vector輸出到文字檔,只需3行程序,STL真是太神奇了。阅读全文

posted @ 2006-12-07 14:46 真 OO无双 阅读(698) | 评论 (0) 编辑

如何使用istream_iterator将cin转到vector? (C/C++) (STL)
摘要: 使用stream_iterator搭配copy() algorithm,输入到vector,再从vector输出,只需3行程序,STL真是太神奇了。阅读全文

posted @ 2006-12-07 12:06 真 OO无双 阅读(1982) | 评论 (2) 编辑

(原創) 如何使用queue? (C/C++) (STL)
摘要: 此范例demo如何使用STL的queue container,要将数据加进queue时,只要用q.push(item)即可,但要取出数据时,并不是用q.pop(),而是用q.front()取出最前面的数据,q.pop()则是将最前面的数据取出queue,其回传值为void。阅读全文

posted @ 2006-11-26 00:22 真 OO无双 阅读(12520) | 评论 (1) 编辑

(原創) 如何使用for_each() algorithm? (C/C++) (STL)
摘要: 很怀念VB和C#的foreach语法吗?对于C++只能用for语法造成程序冗长觉得很烦吗?foreach的确对于container而言非常好用且精简,C++/CLI已经增加上了for each语法了,事实上,C++也可使用foreach喔,STL提供了for_each() algorithm,可以弥补这个缺憾。
阅读全文

posted @ 2006-11-19 12:12 真 OO无双 阅读(2099) | 评论 (0) 编辑

(原創) 如何使用find() algorithm? (C/C++) (STL)
摘要: find()能在container中,尋找單一的值,若找的到,傳回該iterator,若找不到,則傳回container.end()。阅读全文

posted @ 2006-11-16 15:32 真 OO无双 阅读(1674) | 评论 (0) 编辑

(原創) 如何使用remove() algorithm? (C/C++) (STL)
摘要: remove()將移除container中所有的指定元素,但基於不改變Contaier size的原則,remove()只是將要移除的元素搬到contaier後面,若要真正移除,還要搭配contaier.erase()。阅读全文

posted @ 2006-11-16 15:22 真 OO无双 阅读(760) | 评论 (0) 编辑

(原創) 如何使用subscripting的方式新增std::map? (C/C++) (STL)
摘要: std::map提供了两种新增element的方式,一种是c.insert(),和其它container一样,另外一种则是subscripting。阅读全文

posted @ 2006-11-16 01:00 真 OO无双 阅读(477) | 评论 (0) 编辑

(原創) 为什么说iterator是left inclusive? (C/C++) (STL)

posted @ 2006-11-15 23:20 真 OO无双 阅读(145) | 评论 (0) 编辑

(原創) 使用std::vector模拟std::stack? (C/C++) (STL)
摘要: 实务上并不会用std::vector去模拟std::stack,这是我修C++在Lab上的一个练习,要我们用std::vector去模拟std::stack,还蛮有趣的。阅读全文

posted @ 2006-11-15 16:36 真 OO无双 阅读(610) | 评论 (0) 编辑

(原創) 如何删除std::vector内的element?(使用find) (C/C++) (STL)
摘要: 若要删除std::vector中的element,正规的方式该用find() generic algorithm,若find()找到了,会传回该iterator,若找不到,将传回vector.end()。这种写法远比用for loop干净很多。阅读全文

posted @ 2006-11-15 15:26 真 OO无双 阅读(3470) | 评论 (0) 编辑

(原創) std::vector与std::list的执行速度比较 (C/C++) (STL)
摘要: STL中的container各有专长,最常用的是std::vector,可以完全取代array,第二常用的是std::list。std::vector的优点在于non-sequential access超快,新增数据于数据后端超快,但insert和erase任意资料则相当缓慢;std::list则是insert和erase速度超快,但non-sequential access超慢,此范例以实际时间比较vector和list间的优缺点。阅读全文

posted @ 2006-11-09 00:05 真 OO无双 阅读(8400) | 评论 (3) 编辑

(原創) 如何將std::string轉成大寫(小寫)? (C/C++) (STL) (C)
摘要: C++的Standard Library並沒有提供將std::string轉成大寫和小寫的功能,只有在提供將char轉成大寫(toupper)和小寫(tolower)的功能而已,在此利用STL的transform配合toupper/tolower,完成std::string轉換大(小)寫的功能,也看到Generics的威力,一個transform function,可以適用於任何型別,且只要自己提供
Algorithm,就可完成任何Transform的動作。
阅读全文

posted @ 2006-10-15 14:22 真 OO无双 阅读(6261) | 评论 (5) 编辑

(原創) 如何将array转成std::vector? (使用constructor) (C/C++) (STL)
摘要: 由于C++兼容于C,为了用C++维护以前用C写的程序,可能会遇到用C写的array,但C++的std::vector远比array好用,所以可能必须将array转成std::vector继续维护,以下的程序demo如何将array转成std::vector。阅读全文

posted @ 2006-10-12 20:55 真 OO无双 阅读(948) | 评论 (1) 编辑

导航

公告

emblem-2010

first2009-011

我是一個小小的數位IC工程師,從事SOC IP開發,業餘則喜歡研究FPGA、Embedded System、OS、MFC、NET與OOP相關技術。我並不是靠寫Blog或寫書維生,只是記下來怕自己忘記,所以不加任何廣告。所有文章與程式碼歡迎轉載使用。

昵称:真 OO无双
园龄:5年5个月
粉丝:287
关注:0

随笔分类(2100)