[ 永遠的UNIX::UNIX技術資料的寶庫 ]   GB | BIG5

首頁 > 編程技術 > C/C++ > 正文
標準C程式庫--標準樣版庫-向量樣版
http://home.pchome.com.tw/computer/cpp2000/ (2001-06-01 12:10:01)

過去幾年以來,C++ 程式語言的標準語言定義程序經歷了一個大改變。此標準化程序便是標準資料結構庫的產生,此程式庫通常稱為「標準樣版庫」( Standard Template Library ) 或 STL 。由於 STL 是 C++ 語言定義的一部份,因此使用 STL 的程式應該享有高度可植性,因為任何標榜支援 " 標準C++" 的編譯程式都必須提供 STL 實作。

疊代字只是一種類似指標的物件,可以用來循環存取容器中的所有元素。由於不同的演算法需要以個種不同的方式來遊歷容器,因此有各種不同的疊代子形式。標準樣版庫中的每個容器類都提供一種疊代子,適合和實作容器所用的儲存技巧配合使用。

標準樣版庫中的向量 ( vector ) 資料型態將一維陣列的觀念一般化。向量抽象有許多方面比傳統陣列強,例如可以在執行過程中增加或減少群集的大小。要使用 ( vector ) 資料型態,程式設計師首先必須引入 : #include 

宣告和初始化向量
就如同陣列一般,向量的宣告需加入資料型別,我們也利用一些技巧來宣告二維向量。

vector<資料型別> 名稱(建構字參數);

vector arr_float(20)    // 20 為長度

vector arr_int( 10 , 0)    // 10 為長度,0為初值

vector < vector< int> >    // > > 中間要有空格,不然編譯器會當作 >> 運算子 

Top

向量標
[ ]    重載了[ ] 運算子,使它具有存取向量內其中一個元素。例:s4[2]

at    它和上列那一個功能幾乎一樣,除了它可以丟出一個例外(out_of_range),當指定指大於或等於 size 時。

front    傳回第一個元素。

back    傳回最後一個元素。

Top

長度運算與更改大小的運算
size    傳回一個整數值,指出目前元素的個數。

capacity    傳回緩區的大小。

max_size    可配置元素最大圍。

reserve    改變緩區的元素的個數。

empty    如果向量大小為 0 ,則傳回 true (無向量的容量是多少)

resize    改變元素的個數,並將初值填上,例:v.resize( 20 , 17 );    // 元素為 20 個 初值為 17

Top

插入和刪除
push_back    將一個元素到向量的最後面。例:vec_five.push_back(21);         // 將 21 加入到向量的最後面

pop_back    取得最後一個元素值。

insert    將新元素插入疊代子之後。

erase    移除單一元素或移除一個圍。例:vec_five.erase(where);  or  
vec_five.erase (iterator begin, iterator end);

Top

向量疊代子
begin    傳回一個指向起點的疊代子。

end    傳回一個指向終點的疊代子。

rbegin    傳回一個指向反轉起點的疊代子。

rend    傳回一個指向反轉終點的疊代子。

Top

布林向量
在標準 C++ 樣版庫中布林向量是一個特別的方案。為布林向量樣版庫中加入一個特別的函式。也加入一個新的函式。

vector bvec(27);        //宣告

flip    將元素中所有的位元反轉。bvec.flip();     // 反轉所有的元素

swap    交換兩個值,例:bvec.swap(bvec [17], bvec [16]);

(http://www.fanqiang.com)
    進入【UNIX論壇

相關文章
標準C程式庫--問題例--類型 String (2001-06-01 16:10:00)
標準C程式庫--標準樣版庫-集合樣版 (2001-06-01 15:00:01)
標準C程式庫--標準樣版庫-雙頭佇列樣版 (2001-06-01 14:08:00)
標準C程式庫--標準樣版庫-串列樣版 (2001-06-01 13:04:00)
標準C程式庫--標準樣版庫-向量樣版 (2001-06-01 12:10:01)
標準C程式庫--標準樣版庫-字串樣版 (2001-06-01 11:00:00)
 

★  樊強制作 歡迎分享  ★