vector原理及其成員函數使用總結

這裏直接上程序,程序中有註解。可以直接copy代碼,在vs中編譯執行

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

/*迭代器注意事項:1.添加,刪除,結合的操作會使得原有的迭代器失效,因此需要重新更新賦值
2.vector<int> vec[4]--有四個vector數組,vector<int> vec(10);//有1個數組,數組中有10個元素。vec(10)會直接調用vector類的構造函數。
*/
int main(){
vector<int> vec(10);
//1.通過數組下表對vector進行訪問
//for(int i=0;i<10;i++){
//cout<<vec[i]<<" ";
//}

//2.通過迭代器對vector進行訪問
vector<int>::iterator ite=vec.begin();
while (ite!=vec.end())
{
cout<<*ite<<" ";
ite++;
}
cout<<"vector大小: "<<vec.size()<<"  vector容量: "<<vec.capacity()<<endl;

/*添加新的元素時,當vector容量已滿,添加一個元素,容量就變爲原來容量的1.5倍
這裏容量爲10,添加100前,容量已滿,因此申請空間,最後容量大小爲10+10/2=15*/
vec.push_back(100);
ite=vec.begin();
while (ite!=vec.end())
{
cout<<*ite<<" ";
ite++;
}
cout<<"vector大小: "<<vec.size()<<"  vector容量: "<<vec.capacity()<<endl;

vec.push_back(101);
vec.push_back(102);
vec.push_back(103);
vec.push_back(104);//此時容量15已經滿了
vec.push_back(105);//添加105時,重新分配空間,這裏容量大小爲22:--15+15/2=22;
ite=vec.begin();
while (ite!=vec.end())
{
cout<<*ite<<" ";
ite++;
}
cout<<"vector大小: "<<vec.size()<<"  vector容量: "<<vec.capacity()<<endl;

//將最尾端的元素取出
vec.pop_back();
ite=vec.begin();//本句必須得寫:添加,刪除,結合的操作會使得原有的迭代器失效,因此需要重新更新賦值
while (ite!=vec.end())
{
cout<<*ite<<" ";
ite++;
}
cout<<"vector大小: "<<vec.size()<<"  vector容量: "<<vec.capacity()<<endl;

//find()函數--Iterator find(起始位置,結束位置, 查找的元素值) //找到指定的值的位置
//erase()函數--Iterator erase(iterator position)//清除某位置上的元素,vector的使用空間會減少
vector<int>::iterator position01 = ::find(vec.begin(),vec.end(),103);
vector<int>::iterator erase01=vec.erase(position01);
ite=vec.begin();
while (ite!=vec.end())
{
cout<<*ite<<" ";
ite++;
}
cout<<"vector大小: "<<vec.size()<<"  vector容量: "<<vec.capacity()<<endl;

//插入的位置,插入的個數,插入的數值) //在某個位置才插入多少個元素,vector 的使用空間會增加
vector<int>::iterator position02 = ::find(vec.begin(),vec.end(),102);
vec.insert(position02,1,1000);
ite=vec.begin();
while (ite!=vec.end())
{
cout<<*ite<<" ";
ite++;
}
cout<<"vector大小: "<<vec.size()<<"  vector容量: "<<vec.capacity()<<endl;
}

Vector原理圖:【個人怕丟失,所以這裏用照片存儲起來,各位不用看】



發佈了77 篇原創文章 · 獲贊 110 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章