« MT-分類名稱不可用中文 | 回到主頁面 | 23頁第五行--11又1/2逆向管理 »

April 21, 2004

STL學習-簡易學習STL的概念


將此網頁加入【百度收藏】... 加入此網頁到【del.icio.us 書籤】 technorati

 

 

 

 

 

 

緣起

STL( Standard Template Library)與泛行程式設計是一個設計程式的概念,將資料容器與演算法加以分開的一個設計程序,不僅僅可以簡化整個設計流程,更可以使程式模組設計好之後,可以獲得更廣泛的應用空間。這麼好的設計方式,其實已經行之有年,記得前幾天去某些科技公司面試的時候,他們不斷的詢問我問知不知道『侯捷』有沒有修過他的課程,後來才知道原來侯捷算是國內的MFC與STL的大師,只要有修過他開的課程,基本上的程式設計能力就有一定的能力。於是我修了STL與泛型程式設計

在修的過程中,與我之前去接CASE的概念完全不同,雖然我已經相當的熟練物件導向的設計方式,與一些簡單的Template概念,但是卻沒有繼續的研讀一些軟體設計的方法論。所以聽到這些概念的時候,其實整個人是很感動的,在修了幾次的課程之後,於是開始回去架設可以執行STL的執行平台。

所以這篇文章主要是一個架設起可以執行STL的平台,裡面包括(1).STL架設在BCB5.0上的步驟(詳細請參照該篇文章),(2).利用UltraEdit建立一個可以Compiler的空間

  1. 架設STL的執行平台
  2. 雖然STL的設計概念非常的好,但是若你想要執行實做在你手邊有的IDE介面似乎是沒有的,所以我找了一些現有的一些資料裡面。關於STL的開發函示庫中,裡面以SGI的STL算是不錯,而侯捷老師開關於這些課程,也都是再追蹤SGI的STL裡面的源碼(source code)。當你無法直接使用這些函示庫的時候,可以使用STLPORT這個網站所提供的套件去將STL移植到你常使用的IDE介面(比如說VC++,BCB,BC++....)但是有那麼簡單嗎?如果能像STLPORT裡面所提的Have Fun!那也就好了~~我在GCC上面一直無法PORT成功。所以察看侯捷所寫的『STL源碼剖析』後面有位作者孟岩所寫的文章,是關於使用STLPORT在BCB與VC++上。 根據所以以下的操作先根據這樣的步驟,下載好BCB的compiler並且可以去這裡下載STLPORT4.0的版本,依照該上面提到關於BCB5的部分,即可架設完整,裡面可能會遇到的是,MAKE的時候若是MAKE的時候,出現了Page Table 的Size不夠大,即可修改 Makefile將第16行中的

    LINK = tlib /P128   ===> LINK = tlib /P256    即可。

  3. 使用UltraEdit去建立編輯,執行平台
  4. 但是全部的編輯完成後,其實相當的麻煩,也就是每次編輯的時候需要透過DOS模式下COMMAND的方式去編輯軟體。UltraEdit是一個大家常用來撰寫原始碼、或是做些簡單的文書處理用的軟體。但是其實他可以搭配著Compiler去直接當成一個有簡單的IDE介面的CODE軟體。只要你WINDOW的目錄設定好(PATH裡面有包含到COMPILER的執行檔,可直接在COMMAND LINE測試一次,即可知道)就可以利用UltraEdit去編譯程式。方法如下(以下說明針對英文版,中文請將相關位置找到即可):

    首先先到 [Advanced]--->[Tool Configuration],即可看到一個編輯畫面如下:

     UltraEdit中 Tool configuration的畫面

    先設定Compiler的部分:

    根據這個畫面,將[Command Line]填入:" bcc32  %F" 指的就是可以利用bcc32 這個compiler去編譯這個檔案。而將[Working Directory]設定到 "%P" 也就是編譯出來的中間檔放在該目錄之下。[Menu Item Name]裡面就是該TOOL的名稱,就隨便你填入你想要的名稱即可。並且記得將 [Show DOS Box]與 [Capture Output]兩個選項打勾,即可將這個操作的輸出結果抓取到另外一個檔案。

    設定好之後,在主畫面中的[Advanced]下就會出現一個新的選項(快速鍵是 Shift+CTL+某個數字鍵),可拿著某個STL程式作一個簡單的測試。

    接著設定執行程式的部分:

    一樣到剛才那個畫面根據這個畫面,將[Command Line]填入:"%P%N.exe" 指的就是可以利用執行這個檔案編譯好的執行檔。而將[Working Directory]也設定 "%P" 。[Menu Item Name]裡面就是該TOOL的名稱,一樣你填入你想要的名稱即可。記得也需要將並且記得將 [Show DOS Box]與 [Capture Output]兩個選項打勾,才能由畫面看到您的執行結果。

    若要測試這樣的程式是否成功,可以利用UltraEdit開啟該CPP檔案,按下(CTL+Shift+0)『假設你設定COMPILER是第一個),就會出現一個編譯畫面,並且會出現一個新的編輯文字方塊,裡面出現相關的錯誤訊息或是正確訊息。要執行的話按下(CTL+Shift+1),就會看到其相關的執行結果在另外一個編輯文字的檔案之中。

     

 

 



STL與泛行程式設計學習心得

由 Evan 發表於 April 21, 2004 將此網頁加入【百度收藏】... 加入此網頁到【del.icio.us 書籤】 technorati
引用
本文的引用網址:


以下是前來引用的連結 'STL學習-簡易學習STL的概念' 來自 Blog E
迴響

好挖...我來試試看.VC++的部分.

生魚片 發表於 April 22, 2004 02:57 AM

恩恩恩~~ 好阿~
不過根據該份文件,VC似乎建立出來的STL執行檔是相當的大
參考看看

如果有學就相互來切磋一下吧

Evan 發表於 April 22, 2004 04:27 PM

我也好想上比較正統的課程,畢竟程式簡單,設計卻難ㄚ...
誰說程式設計是一件事情....唉~~~

生魚片 發表於 April 23, 2004 10:44 AM

我覺得可以來旁聽 侯捷老師在元智開的課
雖然是開給資工系的課
但是內容蠻難的,所以蠻多研究生來聽

其實算是不錯的課程
自己都在想~~ 以後畢業之後也要來聽課

Evan 發表於 April 24, 2004 01:56 AM

透過這幾天自己與學弟們的嘗試
其實VC++與BCB均有一些與STL差不多的程式(vector 等等)

但是若是要學習到STL的 SOURCE CODE
可能還是要安裝 stlport去把 SGI STL安裝起來
不過~~~~ SGI STL 似乎很難安裝到UNIX上
有成功過的人 請告訴我吧

Evan 發表於 April 28, 2004 01:33 AM

針對VC++與BCB的stl版本
與SGI的STL最大的差別在於memory pool配置上
所以如果要學習好memory pool的話
可能還是要安裝 SGI 的STL

Evan 發表於 April 29, 2004 03:13 AM
發表迴響









記住我的資訊?




(請輸入以下的驗證碼)