
容器程式庫 (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 ...
沒有留言:
張貼留言