- Code project 上面有用的簡介(Practical Guide to STL)
- Center of STL Study——最优秀的STL使用??网站
- Center of STL Study 裡面一個很有用的文章Effective STL 中文版(完整版)
對於for loop的使用,相信大家跟我一樣,總是習慣去撰寫
for(int i=0; i<5; ++i)
{…….
}
cout << i ;
但是,若是根據以上的程式,利用VC6或是BCB會看到哪樣的ouput i?很簡單~~就是 i = 5,但是正常來說,i 的scope 在哪裡??
i 應該是在for 之內的,所以他的生命週期(scope)應該也是在其中,但是由於VC++與BCB的錯誤,此得i 的scope 變成了for 之外,造成許多程式的問題。
解決方式: #define for if(0); else for
參考網站: BBS文章,參照侯捷老師上課內容
感謝網友『阿仁』對於我BLOG裡面程式碼的訂正,在參考過『More
Effective C++』中,對於指標使用上的補充順便加入Reference的一些資料。所以一併將這些資料整理在這裡,順便提一下今天侯捷老師講解一些關於Reference
Counting
的概念。只能說很多東西要不斷的複習,不然真的都會遺忘,這幾次的面試有很多間公司都搞砸了也就是因為這個原因,原本五專時代都記得的東西,因為許久沒有使用,真的都忘的乾乾淨淨。
關於buffer overflow的範例程式,就如同上一篇文章裡面有提到,buffer
overflow
主要是利用C++對於陣列大小沒有限制的概念,當你輸入一個過大的數值,回傳值(return
value)會被蓋掉,即使你輸入錯誤的數值,你會也因為這樣而成功的登入電腦(或是使某個安全認證通過~~~)
在程式語言之中,C++一直是我最熟悉的語言之一,也由於之前在五專時代曾經寫過物件導向SCSI驅動程式的經驗,讓我的C的程式語言能力有一定的水準。不過自從上了大學之後,就一路忙著學習著Linux的架設與網頁程式(PHP,ASP,ZOPE…等)其實C++已經忘記的差不多。所以最近去幾家公司面試的時候也著實讓我吃盡了苦頭。
由於我之前去許多家公司面試軟體研發工程師(RD)的職位,也由於我本身喜歡挑戰新的領域與事物,於是我在面試的時候,全部避開之前熟悉網站程式設計或是Linux的架設部分,而盡量選擇系統軟體程式設計師或是LINUX的程式設計師。所以去每家公司自然而然要考一些基本的C++基礎與一些程式設計的概念。或許大家看到這邊,會覺得很簡單,C++不就是基本的程式概念,有哪一些需要學習呢?但是自從我去幾家軟體公司面試以來,有一些題目還真是有點刁鑽與難懂,明明是很簡單的概念,卻往往容易疏忽而犯錯。以下就將幾題我之前去面試的題目提供出來,你又能答對幾題呢?
Vector是STL容器裡面最簡單的一個,但是在資料結構裡面也鮮少有提到,但是在STL裡面卻時常利用這個資料結構。在這裡擺上我今天學習Vector的一些重點,讓大家分享一下。
- 引用STLPORT版本 :stlport4.0在bcb5.5上實做
- 引用函示庫 <vector> :位置: 您安裝STLPORT的位置\stlport\vector
- 實際運作函示庫
:位置:
您安裝STLPORT的位置\stlport\stl\_vector.h

緣起
STL(
Standard Template Library)與泛行程式設計是一個設計程式的概念,將資料容器與演算法加以分開的一個設計程序,不僅僅可以簡化整個設計流程,更可以使程式模組設計好之後,可以獲得更廣泛的應用空間。這麼好的設計方式,其實已經行之有年,記得前幾天去某些科技公司面試的時候,他們不斷的詢問我問知不知道『侯捷』有沒有修過他的課程,後來才知道原來侯捷算是國內的MFC與STL的大師,只要有修過他開的課程,基本上的程式設計能力就有一定的能力。於是我修了STL與泛型程式設計。
在修的過程中,與我之前去接CASE的概念完全不同,雖然我已經相當的熟練物件導向的設計方式,與一些簡單的Template概念,但是卻沒有繼續的研讀一些軟體設計的方法論。所以聽到這些概念的時候,其實整個人是很感動的,在修了幾次的課程之後,於是開始回去架設可以執行STL的執行平台。
所以這篇文章主要是一個架設起可以執行STL的平台,裡面包括(1).STL架設在BCB5.0上的步驟(詳細請參照該篇文章),(2).利用UltraEdit建立一個可以Compiler的空間
Recent Comments