C++之vector容器初學——插入和刪除

插入操作:

理論知識

² vector.insert(pos,elem); //在pos位置插入一個elem元素的拷貝,返回新數據的位置。

² vector.insert(pos,n,elem); //在pos位置插入n個elem數據,無返回值。

² vector.insert(pos,beg,end); //在pos位置插入[beg,end)區間的數據,無返回值

簡單案例

vector<int> vecA;

vector<int> vecB;

vecA.push_back(1);

vecA.push_back(3);

vecA.push_back(5);

vecA.push_back(7);

Advertisements

vecA.push_back(9);

vecB.push_back(2);

vecB.push_back(4);

vecB.push_back(6);

vecB.push_back(8);

vecA.insert(vecA.begin(), 11); //{11, 1, 3, 5, 7, 9}

vecA.insert(vecA.begin()+1,2,33); //{11,33,33,1,3,5,7,9}

vecA.insert(vecA.begin() , vecB.begin() , vecB.end() ); //{2,4,6,8,11,33,33,1,3,5,7,9}

測試代碼:

vector的刪除

理論知識

Advertisements

² vector.clear(); //移除容器的所有數據

² vec.erase(beg,end); //刪除[beg,end)區間的數據,返回下一個數據的位置。

² vec.erase(pos); //刪除pos位置的數據,返回下一個數據的位置。

簡單案例:

刪除區間內的元素

vecInt是用vector<int>聲明的容器,現已包含按順序的1,3,5,6,9元素。

vector<int>::iterator itBegin=vecInt.begin()+1;

vector<int>::iterator itEnd=vecInt.begin()+2;

vecInt.erase(itBegin,itEnd);

//此時容器vecInt包含按順序的1,6,9三個元素。

假設 vecInt 包含1,3,2,3,3,3,4,3,5,3,刪除容器中等於3的元素

for(vector<int>::iterator it=vecInt.being(); it!=vecInt.end(); ) //小括弧里不需寫 ++it

{

if(*it == 3)

{

it = vecInt.erase(it); //以迭代器為參數,刪除元素3,並把數據刪除后的下一個元素位置返回給迭代器。

//此時,不執行 ++it;

}

else

{

++it;

}

}

//刪除vecInt的所有元素

vecInt.clear(); //容器為空

喜歡的話關注收藏評論轉發一波 比心么么噠!加入我們C語言C++學習交流 壹 496926338群內有大量的項目開發和新手教學視頻千人大群等著你來加入。

測試代碼:

Advertisements

你可能會喜歡