摘要:此范例demo如何使用STL的queue container,要将数据加进queue时,只要用q.push(item)即可,但要取出数据时,并不是用q.pop(),而是用q.front()取出最前面的数据,q.pop()则是将最前面的数据取出queue,其回传值为void。1/**//*2(C)OOMusou2006http://oomusou.cnblogs.com34Filename:Queu...
阅读全文
10 2010 档案
摘要:sort()和stable_sort()都對container做sort的動作,但對於相等的值,sort()和stable_sort()處理的方式不一樣,stable_sort()會保證不更改原先的順序,但sort()則不保證,有可能更改順序,但也有可能不改,這樣講還是很籠統,若用SQL來解釋,就一目暸然了。在SQL中,我們常有以下寫法1SELECT*2FROM[customers]3ORDERB...
阅读全文
摘要:此範例demo如何使用unique() algorithm。1/**//*2(C)OOMusou2006http://oomusou.cnblogs.com34Filename:GenericAlgo_unique.cpp5Compiler:VisualC++8.0/ISOC++6Description:Demohowtouseunique()algorithm7Release:12/11/200...
阅读全文
摘要:copy() algorithm是很好用的algorithm,但偏偏就是沒有copy_if(),但透過remove_copy_if()則可達到相同的要求。remove_copy_if()的思考方式和copy_if()相反,若UnaryPredicate為true,則不copy,若為false,則copy。此範例demo若為remove_copy_if() algorithm,先輸出奇數,再輸出偶數...
阅读全文
摘要:大家都體會過sequential container搭配copy() algorithm,只要一行程式就可以將所有值輸出到cout,map這種associative container就無法用這一招,是否有其它方式解決呢?map這種associative container因為是雙值,若用copy()到cout,會讓cout傻眼,不知道要抓拿一個值,當然用for loop一定可以,但基於使用STL...
阅读全文
摘要:AbstractUSB autorun原來為Windows相當貼心的功能,但隨著USB外接硬碟與隨身碟越來越大,又可借由autorun傳播病毒,所以希望能停用此功能。Introduction修改registry:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\的NoDriveTypeAuto...
阅读全文
摘要:map和multimap都自帶find(),不需Generic Algorithm就可搜尋,事實上,當container和algorithm都提供方法時,應先考慮使用container自帶的方法,因為algorithm考慮到泛型,還需要經過iterator,但container自帶的方法卻是量身訂做的,所以執行速度較快。要列出multimap中某個key的所有value,有三種方式,此範例demo...
阅读全文
摘要:若要將vector中反過來列印,該怎麼做呢?STL提供了reverse_iterator。1/**//*2(C)OOMusou2006http://oomusou.cnblogs.com34Filename:ReverseIterator.cpp5Compiler:VisualC++8.0/ISOC++6Description:Demohowtousereverse_iterator7Releas...
阅读全文
摘要:很多STL algorithm都是_if結尾的,讓我們可以帶function進去,若配合function object,可讓function更有彈性!!以下的範例想利用count_if() algorithm得知vector大於n的有幾個?1/**//*2(C)OOMusou2007http://oomusou.cnblogs.com34Filename:FunctionObjectSimple....
阅读全文
摘要:Abstract若想將container中的iterator,從一個值取代成另外一個值,但container並沒有提供replace()這個member function,而是提供了replace()這個Generic Algorithm。Introduction以下範例我們將vector中,所有的1取代成4。1/**//*2(C)OOMusou2006http://oomusou.cnblogs...
阅读全文
摘要:Abstract之前在(原創) 如何使用for_each() algorithm? (C/C++) (STL)曾經討論過for_each(),不過當時功力尚淺,只談到了皮毛而已,這次看了effective STL的item 41、43後,對for_each()又有了更深入的了解,因此做了本篇心得報告。Motivation看到了eXile的C++中实现 foreach使用了巨集對foreach做改善...
阅读全文
摘要:Abstractfor_each()是STL中少數可以回傳值的algorithm,此範例在展示for_each()此特殊功能與function object可以留住state的特性。Introductionfunction object與global function的差別除了function object可以傳入參數外,還可以不使用static就可以留住state。一個簡單的需求,想要每印n個數...
阅读全文
摘要:轉貼自 梦在天涯的STL算法学习STL算法学习,小结如下:前提: 下载stl源码: http://www.sgi.com/tech/stl/download.html打开网页: http://www.sgi.com/tech/stl/stl_index.html一 函数对象: 因为很多的算法中多使用了函数对象 二元函数对象,V1和V2为输入,V3为结果plus<T>: transfor...
阅读全文
摘要:Abstract STL並沒有提供這樣的algorithm,透過簡單的方法,就可以達成這個需求。Sample Code1/**//*2(C)OOMusou2007http://oomusou.cnblogs.com34Filename:GenericAlgo_eliminate_duplicate.cpp5Compiler:VisualC++8.0/BCB6.0/gcc3.4.2/ISOC++6D...
阅读全文
摘要:Abstract前一篇(原創) 如何使用C語言的標準函式庫進行排序? (C)談到使用C語言stdlib.h的qsort()對array進行排序,C++呢?STL也提供了sort() algorithm。IntroductionSTL的sort()不僅僅支援array,還支援其餘的container如vector,list等,這也是泛型之美,container和algorithm徹底decouple...
阅读全文
摘要:Abstract寫文字檔轉檔程式是很常見的需求,一般來說,這種都屬於dirty job,沒什麼技巧,純粹是迴圈硬幹,若使用STL來寫轉檔程式,不只程式超短,一個迴圈都不需要!!Introduction昨天網友Momo要我幫他寫一個轉檔程式,將文字檔轉成XML檔,格式如下文字檔user_b5fix.dat-1,-1,-1,-1,-1,-1一元運算符,一元運算子二叉樹,二元樹二元運算符,二元運算子二分...
阅读全文
摘要:Abstract若用C語言配合迴圈,這是個很簡單的題目,但若用C++配合STL,則有很漂亮的寫法。Introduction陣列中有2、3、1、3、5五個值,希望能列出大於2的所有元素。C++1/*2(C) OOMusou 2008 http://oomusou.cnblogs.com34Filename : GenericAlgo_remove_copy_if_predicate.cpp5Comp...
阅读全文
摘要:Abstract在(原創) 如何将字符串前后的空白去除? (使用string.find_first_not_of, string.find_last_not_of) (C/C++) (STL) 中已经可顺利将字符串前后的空白去除,且程序相当的精简,在此用另外一种方式达到此要求,且可同时将whitespace去除,并且使用template写法。Introduction原來版本的程式在VC8可執行,但...
阅读全文
摘要:Abstract若需要將程式碼放進word交報告或做文件時,或許我們會想將程式碼加上行號方便講解,如同博客園顯示程式碼那樣,我們該如何做呢?Introduction使用環境:Visual C++ 9.0 / Visual Studio 2008一段C++的小程式,可以幫程式碼加上行號後輸出。map_code_line.cpp / C++[代码]執行結果[代码]32行[代码]是整個程式的關鍵:使用m...
阅读全文
摘要:Abstract一個很常見的需求:『將struct塞進vector』,在C++該怎麼做呢?Introduction使用環境:Visual C++ 9.0 / Visual Studio 2008由於vector只允許一個欄位,所以才會想將struct塞進vector,以彌補vector的不足。struct_in_vector.cpp / C++[代码]執行結果[代码]由於vector內放的是str...
阅读全文
摘要:Abstract回文是學習C語言時,常出現的作業與考題。Introduction所謂回文,就事字串的第一個字元等於最後一個字元,第二個字元等於倒數第二個字元。palindrome.c / C[代码]18行[代码]依序檢查字串第一個字元是否等於最後一個字元,第二個字元是否等於倒數第二個字元,若發現任何一個字元不同,就不是回文。感謝沐枫的提醒,在C++有更精簡的寫法。palindrome.cpp / ...
阅读全文
摘要:C/C++並沒有提供內建的int轉string函數,這裡提供幾個方式達到這個需求。1.若用C語言,且想將int轉char *,可用sprintf(),sprintf()可用類似printf()參數轉型。1/**//*2(C)OOMusou2007http://oomusou.cnblogs.com34Filename:int2str_sprintf.cpp5Compiler:VisualC++8....
阅读全文
摘要:Abstracion最近有同學問我這個問題,整理之後,將心得提出與大家分享。Introduction學習C/C++時,一開始要學的就是標準輸入輸出。一個很簡單的需求:由鍵盤輸入字串存入記憶體,若輸入了quit,則結束,最後在全部已經存在記憶體中的字串。先看看C++要怎麼寫。C++ / string_into_svec.cpp1/*2(C) OOMusou 2008 http://oomusou.c...
阅读全文
摘要:AbstractionIntroduction學習資料結構,第一個要學的就是linked list,本文示範最簡單的linked list實現,包含建立與顯示,可把它當成linked list的標準範本,畢竟步驟都差不多。一個基本的問題:為什麼需要linked list?若要將大量資料存到記憶體,你會想到什麼?第一個想到的就是array,但C語言是個靜態語言,array必須事先宣告大小,這樣com...
阅读全文
摘要:Abstract這是一個初學者常犯的錯,不過卻是一個很好的問題,充分表現出指標的特色。Introduction一個很簡單的C語言,只有6行。C語言1#include <stdio.h>23int main() {4 int*ptr = 345;5 printf("%d\n", *ptr);6}在不同的compiler會有不同結果,在VC6不能編譯,會有錯誤訊息,在VC8則無錯誤訊息,但...
阅读全文
摘要:Abstract這是一個實務上常用的功能,可惜在C語言的string.h並沒有提供,本文實作出一個小function達到此功能,並搭配pointer。 Introduction在(筆記) 如何在字串中從指定字元抓到指定字元? (C/C++) (C),其實已經可以包含99%的需求,唯一的缺憾是,string.h的函數大都回傳的char *,若要更靈活的搭配string.h原本的函數,勢必提供poin...
阅读全文
摘要:Abstract寫過JavaScript或ASP的朋友,應該常常用到split()這個函數,他可以輕易地將string轉成array,C語言並沒有相對應的函數,只有strtok()較為接近,稍微加工後,就可以在C語言實現split()。Introduction使用環境 : IE 7.0 + Visual Studio 2008在JavaScript,可以輕易的將string轉成array。spli...
阅读全文
摘要:發現一個很好的台灣的博客。可以當作書來閱讀http://www.cnblogs.com/oomusou/archive/2009/05/10/c_strtok.htmlAbstractstrtok()的簡單使用範例。Introduction使用環境 : Visual Studio 2008strtok.c / C[代码]執行結果完整程式碼下載strtok.7zRemarkcsie-tw問到,為什麼...
阅读全文
摘要:1.判断UAC是否启动BOOL _stdcall IsRunUAC()//判断是否启动UAC{ BOOL bRet = FALSE; LONG lErr; HKEY hKEY; DWORD dwEnableLUA; DWORD dwType = REG_DWORD; DWORD dwSize = sizeof( DWORD ); if( IsVISTA() ) { lErr = R...
阅读全文
摘要:http://blog.csdn.net/delphihero/archive/2006/05/11/725340.aspx
阅读全文
摘要:http://blog.csdn.net/muzizongheng/archive/2010/05/07/5565170.aspx
阅读全文
摘要:http://blog.csdn.net/xianglitian/archive/2007/08/03/1724017.aspx
阅读全文
摘要:Application.Exit退出安装程序,并返回一个可选的返回代码。Application.GetInstallLanguage返回一个包含当前安装语言的表格。Application.GetLastError返回最后的错误代码。Application.GetWndHandle为安装程序窗口返回数字窗口句柄。Application.LoadActionPlugin加载一个操作插件文件 (.lmd...
阅读全文
摘要:基础篇作者:Stanley Zhao版权所有,如转载请注明出处我们在用VB等语言编写并编译成程序后,往往会希望制作一个精美的安装程序来发布自己的软件。在这里推荐使用Setup Factory 7.0,这是一款强大的安装程序制作工具。该软件提供了安装制作向导界面,即使你对安装制作不了解,也可以生成专业性质的安装程序。可建立快捷方式,也可直接在 Windows 系统的注册表加入内容,还能在 Win.i...
阅读全文
摘要:Run-Time Check Failure #2 - Stack around the variable 'var' was corrupted摘要:简介VC++.NET编译新功能,运行时错误检查,编译选项 (/RTC1, equiv. to /RTCsu)最近把一个别人早期在VC 6下编写的一个服务移植到VC 7.1 (.NET 2003)时,突然跳出好些运行时错误提示。经过查询编译器和出错说...
阅读全文
摘要:在程序的开始处我申请了一块内存,中间对其进行了一些操作,在程序结束处,释放内存的时候,引起错误:HEAPCORRUPTIONDETECTED:afterNormalblock(#***)at0x****.CRTdetectedthatapplicationwrotememoryafterendofheapbuffer.错误原因:以对内在操作的过程中,所写的地址超出了,所分配内在的边界memcpy的...
阅读全文
摘要:common control 4.7版本介绍了一个新的特性叫做Custom Draw,这个名字显得模糊不清,让人有点摸不着头脑,而且MSDN里也只给出了一些如风的解释和例子,没有谁告诉你你想知道的,和究竟这个特性有什么好处。 Custom draw可以被想象成一个轻量级的,容易使用的重绘方法(重绘方法还有几种,例如Owner Draw等)。这种容易来自于我们只需要处理一个消息(NM_CUSTOMD...
阅读全文
摘要:1. CListCtrl 风格 LVS_ICON: 为每个item显示大图标 LVS_SMALLICON: 为每个item显示小图标 LVS_LIST: 显示一列带有小图标的item LVS_REPORT: 显示item详细资料 直观的理解:windows资源管理器,“查看”标签下的“大图标,小图标,列表,详细资料”-----------------...
阅读全文
摘要:listctrl 显示位图,只要建立一个CImageList 和listctrl建立连接就可以了;下面详细步骤:1、在头文件里面:.hCImageList m_imagelist; //-----创建一个新的图像列表框;CBitmap bitmap1,bitmap2,bitmap3,bitmap4; //------创建几个位图;2.在实现文件里面:.cppm_showalarm.SetExten...
阅读全文
摘要:1,解码CERT_INFO结构 给定一个证书,第一步是调用函数CertCreateCertificateContext解码证书BLOB。当这个函数被调用,那么产生一个编码证书的复制品,创建一个CERT_CONETXT类型的结构和一个CERT_INFO类型的结构。一个certificate_context包含一个原始证书BLOB,一个CERT_CONETXT类型的结构以及一个CERT_INFO类...
阅读全文