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)
|
|
|
|
 |
★ 樊強制作 歡迎分享 ★ |