1、定義ios
vector是C++中的一種數據結構,確切的說是一個類。它至關於一個動態的數組,是一個順序容器,可以在尾部高效地插入和刪除元素,同時支持隨機訪問其中的值。動態改變大小能夠達到最大節約空間的目的。數組
2、基本操做數據結構
(1)頭文件:#include<vector>函數
(2)建立vector對象:vector<int/double/string/…> m_vec;spa
(3)使用下標訪問元素:m_vec [0],m_vec [1],…code
(4)使用迭代器訪問元素:對象
vector<int>::iterator vecItem; for(vecItem = m_vec.begin(); vecItem!= m_vec.end(); vecItem ++) { cout << * vecItem << endl; }
3、經常使用成員函數string
(1)從尾部插入一個元素:push_back(data);it
(2)從尾部刪除一個元素:pop_back();io
(3)從某一位置插入一個元素:insert(pos, data)
(4)從某一位置刪除一個元素:erase(pos);
(5)從某一區間刪除若干元素:erase(begPos, endPos);
(6)返回第一個數據:front();
(7)返回最後一個數據:back();
(8)返回容器第一個元素的迭代器:begin();
(9)返回容器最後一個元素的迭代器:end();
(10)返回容器中實際數據的個數:size();
(11)重置容器大小:resize(num);
(12)判斷容器是否爲空:empty();
(13)刪除容器中全部元素:clear();
4、示例代碼
#include <iostream> #include <vector> using namespace std; void main() { vector<int> vec; vector<int>::iterator vecItem; vec.push_back(1); vec.push_back(2); vec.push_back(3); vec.push_back(4); cout << "The first data is : " << vec.front() << endl; cout << "The last data is : " << vec.back() << endl; cout << "All datas are : "; for(vecItem = vec.begin(); vecItem < vec.end(); vecItem++) { cout << *vecItem << " " ; } cout << endl; vec.pop_back(); cout << "All datas are : "; for(vecItem = vec.begin(); vecItem < vec.end(); vecItem++) { cout << *vecItem << " " ; } cout << endl; vec.insert(vec.begin()+1, 4); cout << "All datas are : "; for(vecItem = vec.begin(); vecItem < vec.end(); vecItem++) { cout << *vecItem << " " ; } cout << endl; vec.erase(vec.end()-2); cout << "All datas are : "; for(vecItem = vec.begin(); vecItem < vec.end(); vecItem++) { cout << *vecItem << " " ; } cout << endl; cout << "The num of datas is : " << vec.size() << endl; vec.resize(2); cout << "The num of datas is : " << vec.size() << endl; cout << "The vector is empty ? " << vec.empty() << endl; vec.clear(); cout << "The vector is empty ? " << vec.empty() << endl; }