void printVector(vector<int>& v)
{
for (vector<int>::iterator it = v.begin();it != v.end();it++)
cout << (*it)<<" ";//it類似指針
cout << endl;
}
//默認無參構造
vector<int> v1;
for (int i = 0;i < 10;i++)
v1.push_back(i);
printVector(v1);
//區間拷貝構造
vector<int> v2(v1.begin(), v1.end());
printVector(v2);
//n個element方式構造
vector<int> v3(10, 100);//傳入10個100
printVector(v3);
//拷貝構造
vector<int> v4(v3);
printVector(v4);
//賦值操作
vector<int> v1;
for (int i = 0;i < 10;i++)
v1.push_back(i);
printVector(v1);
//等號賦值操作
vector<int> v2;
v2 = v1;
printVector(v2);
//assign賦值
vector<int> v3;
v3.assign(v2.begin(), v2.end());
printVector(v3);
//assign n個相同元素賦值
vector<int> v4;
v4.assign(10, 99);
printVector(v4);
//容器的容量和大小操作
vector<int> v1;
for (int i = 0;i < 10;i++)
v1.push_back(i);
printVector(v1);
if (v1.empty()) //爲真代表容器爲空
cout << "v1空" << endl;
else
cout << "v1不爲空" << endl;
cout << "v1的容量爲" << v1.capacity() << endl;
cout << "v1的大小爲" << v1.size() << endl;
v1.resize(15,10);//重新指定大小,可指定默認填充值
printVector(v1);
cout << "v1的容量爲" << v1.capacity() << endl;
cout << "v1的大小爲" << v1.size() << endl;
v1.resize(5);
printVector(v1); //重指定變短了,則會刪除後面多的數據
//容器的刪除和插入//
vector<int> v1;
for (int i = 0;i < 10;i++)
v1.push_back(i); //尾插法插入數據
printVector(v1);
//尾刪法
v1.pop_back(); //刪除末尾的元素
printVector(v1);
//插入
v1.insert(v1.begin(), 100); //再開始處插入100 第一個參數是迭代器
printVector(v1);
v1.insert(v1.begin(),2,1000); //再開始處插入2個1000 第一個參數是迭代器
printVector(v1);
v1.insert(v1.begin()+2, 2, 5 ); //再第三個元素處插入2個5 第一個參數是迭代器
printVector(v1);
//刪除
v1.erase(v1.begin()); //刪除頭的第一個元素
printVector(v1);
v1.erase(v1.begin(),v1.end()); //刪除所有元素 輸出會變成換行
printVector(v1);
//vector容器中數據獲取//
vector<int> v1;
for (int i = 0;i < 10;i++)
v1.push_back(i);
//利用[]方式訪問數組中元素
for (int i = 0;i < v1.size();i++)
cout << v1[i] << " ";
cout << endl;
//利用at方式訪問元素
for (int i = 0;i < v1.size();i++)
cout << v1.at(i)<<" ";
cout << endl;
//獲取第一個元素
cout << "第一個元素爲: " << v1.front() << endl;
//獲取最後一個元素
cout << "最後一個元素爲: " << v1.back() << endl;
//vector 互換容器//
vector<int> v1;
for (int i = 0;i < 10;i++)
v1.push_back(i);
printVector(v1);
vector<int> v2;
for (int i = 10;i >0;i--)
v2.push_back(i);
printVector(v2);
cout << "交換後容器數據" << endl;
v1.swap(v2); //v1與v2進行交換
printVector(v1);
printVector(v2);
void test02()
{
vector <int> v;
for (int i = 0;i < 100000;i++)
v.push_back(i);
cout << "v的容量 : " << v.capacity() << endl;
cout << "v的大小 : " << v.size() << endl;
//重新指定大小
v.resize(3);
cout << "v的容量 : " << v.capacity() << endl;
cout << "v的大小 : " << v.size() << endl;
vector<int>(v).swap(v); //利用swap收縮空間 (v)這樣創建相當於匿名對象,拷貝v元素的內容
cout << "v的容量 : " << v.capacity() << endl;
cout << "v的大小 : " << v.size() << endl;
}