1.標准庫vector類型
vector 是同一種類型的對象的集合,每個對象都有一個對應的整數索引值。標准庫將負責管理與存儲元素相關的內存。我們把 vector 稱為容器,是因為它可以包含其他對象。一個容器中的所有對象都必須是同一種類型的。
用 vector之前,必須包含相應的頭文件。
#include
using std::vector;
vector 是一個類模板(class template)。使用模板可以編寫一個類定義或函數定義,而用於多個不同的數據類型。因此,我們可以定義保存 string 對象的 vector,或保存 int 值的 vector,又或是保存自定義的類類型對象vector。使用類模板時只需要簡單了解類模板是如何定義的就可以了。聲明從類模板產生的某種類型的對象,需要提供附加信息,信息的種類取決於模板。以 vector 為例,必須說明 vector 保存何種對象的類型,通過將類型放在類模板名稱後面的尖括號中來指定類型:
vector
vector
注意:和其他變量定義一樣(作為定義變量看待,如 int a;float b;),定義 vector 對象要指定類型和一個變量的列表。上面的第一個定義,類型是vector
定義方法為:vector<類型> 名稱
vector<類型> :作為一個整體,是類型,相當於int,float。
名稱 相當於變量的名字,a,b。
則以下幾種都是成立的
vector
vector
vector
vector
vector 不是一種數據類型,而只是一個類模板,可用來定義任意多種數據類型。vector 類型的每一種都指定了其保存元素的類型。因此,vector
2.Vector向量幾種情況的總結
1) vector
#include#include using namespace std; int main() { vector k; for (int j = 0; j<12; j++) { k.push_back(j);//向kk中追加值 } for (int j = 0; j<12; j++) { cout <
#include#include using namespace std; int main() { vector k; int *p = new int[15]; for (int j = 0; j<15; j++) { p[j] = j; k.push_back(&p[j]); } for (int i = 0; i < 15;i++) { cout << *k[i]<< " ";//因為向量容器裡面都是int型的指針變量, } //所以值都是指針,所以需要間接訪問運算符* delete[]p; system("pause"); return 0; }
3)vector
#include#include using namespace std; int main() { vector *k;//vector向量指針 k = new vector [5]; //相當於int *p = new int[5];即vector *kkk=new vector [5]; for (int i = 0; i<5; i++) { for (int j = 0; j<10; j++) { k[i].push_back(j);//像向量指針中追加值 } } for (int i = 0; i<5; i++) { for (int j = 0; j < k[i].size(); j++) cout << k[i][j] << " "; cout << endl; } delete[] k; system("pause"); }
4)vector
#include#include using namespace std; int main() { vector *k;//int指針的向量指針 k = new vector [5]; int *p = new int[10]; for (int i = 0; i < 5; i++) { for (int j = 0; j < 10; j++) { p[j] = j; k[i].push_back(&p[j]); } } for (int i = 0; i < 5; i++) { for (int j = 0; j < 10; j++) { cout<<*k[i][j]<<" "; } cout << endl; } delete[]p; delete[]k; system("pause"); }