C++ 速查手冊 V1.00 - 單元 15.3 - 容器程式庫




容器程式庫 (containers library) 包含各種容器 (container) ,所謂容器類似複合資料型態,不過是具有更複雜的物件,有如下的標頭檔


名稱 功能
<array>C++11 std::array
<vector> std::vector
<deque> std::deque
<list> std::list
<forward_list>C++11 std::forward_list
<set> std::set, std::multiset
<map> std::map, std::multimap
<unordered_set>C++11 std::unordered_set, std::unordered_multiset
<unordered_map>C++11 std::unordered_map, std::unordered_multimap
<stack> std::stack
<queue> std::queue, std::priority_queue
<iterator> 迭代器類別。

舉一例如下


001 #include <iostream>
002 #include <vector>
003
004 using namespace std;
005
006 int main() {
007    vector<int> v;
008
009    v.push_back(1);
010    v.push_back(2);
011    v.push_back(3);
012    v.push_back(4);
013    v.push_back(5);
014
015    for (int i = 0; i < v.size(); i++) {
016       cout << v[i]
017            << endl;
018    }
019
020    return 0;
021 }
022  
023 /* Kaiching Chang 
024    u1503.cpp
025    2014-02 */

此例示範 C++ 的 vector 容器物件,因此要先 #include <vector>


002 #include <vector>

由於 vector 是用樣板定義的,因此宣告時要指定型態


007 vector<int> v;

push_back()vector 的成員函數 (member function) ,用途是將資料放在 vector 的最後


009 v.push_back(1);

此例共放了 5 個整數到變數 v 之中,存取 vector 同樣用中括弧與索引值,而 size() 則是 v 的大小


015 for (int i = 0; i < v.size(); i++) {
016    cout << v[i]
017         << endl;
018 }

簡單說, vector 像是可變的陣列,但具有更多功能。

編譯執行,結果如下


$ g++ u1503.cpp
$ ./a.out
1
2
3
4
5
$

continue ...

沒有留言: