【STL】Vector

Vector

名詞解釋:vector 是同一種類型的對象的集合,每個對象都有一個對應的整數索引值 。
和 string 對象一樣,標準庫將負責管理與存儲元素相關的內存。我們把 vector稱爲容器,是因爲它可以包含其他對象,能夠存放任意類型的動態數組,增加和壓縮數據。一個容器中的所有對象都必須是同一種類型的 。
vector 是一個類模板(class template)。使用模板可以編寫一個類定義或函數定義,而用於多個不同的數據類型。因此,我們可以定義保存 string 對象的 vector,或保存 int 值的 vector,又或是保存自定義的類類型對象(如Sales_items 對象)的 vector。vector 不是一種數據類型,而只是一個類模板,可用來定義任意多種數據類型。vector 類型的每一種都指定了其保存元素的類型。

vectors運用實例

#include<iostream>                                                                                                                                     
#include<vector>                                                                                                                                       
#include<string>                                                                                                                                       
#include<algorithm>                                                                                                                                    
using namespace std;

int main()
{
    vector<string> sentence;
    sentence.reserve(5);
    sentence.push_back("hello,");
    sentence.push_back("how");
    sentence.push_back("are");
    sentence.push_back("you");
    sentence.push_back("?");
    copy(sentence.begin(), sentence.end(), ostream_iterator<string>(cout, " "));
    cout << endl;
    cout << "max_size():" << sentence.max_size() << endl;
    cout << "size():" << sentence.size() << endl;
    cout << "capacity():" << sentence.capacity() << endl;
    swap(sentence[1], sentence[3]);
    sentence.insert(find(sentence.begin(), sentence.end(), "?"), "always");
    sentence.back() = "!";
    copy(sentence.begin(), sentence.end(), ostream_iterator<string>(cout, " "));
    cout << endl;
    cout << "max():" << sentence.max_size() << endl;
    cout << "size();" << sentence.size() << endl;
    cout << "capacity()" << sentence.capacity() << endl;
}

結果

404

實驗結果可能如此,注意我說的是“可能”,是的當max_size()和capacity()的結果由實作版本決定,從這個例子中你可以看到,當容量不足時,此一實作版本將容量擴充1。所以你可以試着運行一下看看有沒有和我不同。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章