本帖最後由 domen111 於 2014-9-17 21:06 編輯
vector感覺就像陣列一樣,不過它的大小是可變動的,所以它可以自由的新增元素,一般的陣列只能修改裡面的元素並不能新增刪除
那些v.begin()、v.end()是iterator的用法,如果看不懂可以再問(或者不管它也沒關係)
[C++] 純文本查看 復制代碼
//vector的各種用法
#include <iostream>
#include <vector>
using namespace std;
int main(int argc, char** argv) {
vector<int> v; //宣告內容為int型態的vector
v.clear(); //將vector的內容清空
//將資料新增至vector(補在後面)
v.push_back(11);
v.push_back(22);
v.push_back(22);
v.push_back(99);
v.push_back(11);
v.push_back(22);
v.insert(v.begin()+1,1); //在vector中間插入元素(效率會比較差)
v.pop_back(); //移除最後一筆元素
//將vector裡面的元素全部輸出的2種方法
vector<int>::iterator iter;
for(iter=v.begin();iter!=v.end();iter++){
cout << *iter << ", ";
}
cout<<endl;
//或
for(int i=0; i<v.size() ; i++){
cout << v[i] << ", ";
}
cout<<endl;
cout<<v.empty()<<endl; //vector是否為空
v.reserve(50);//保留空間
cout<<v.size()<<endl;//6,vector大小
cout<<v.capacity()<<endl;//50
v.resize(50,123);//小於原來大小,會刪掉多餘元素,大於原來大小會補123(如果沒寫就補0)
cout<<v.front()<<v.back()<<endl;//最前和最後一筆資料
v.erase(v.begin()+3);
v.erase(v.begin()+3,v.begin()+6);
}
|