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