国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++之vector容器初學(xué)(二)——插入和刪除

2019-11-11 06:42:40
字體:
供稿:網(wǎng)友

插入操作:

理論知識

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

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

2 vector.insert(pos,beg,end);   //在pos位置插入[beg,end)區(qū)間的數(shù)據(jù),無返回值 

簡單案例

vector<int> vecA;

vector<int> vecB;

 

vecA.push_back(1);

vecA.push_back(3);

vecA.push_back(5);

vecA.push_back(7);

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}

測試代碼:

#include <iostream>using namespace std;#include "vector"void PRintV(vector<int> &v){	for (int i = 0; i < v.size();i++)	{		cout <<v[i]<< " ";	}	cout << endl;}//插入操作void main1(){	vector<int> v1;	v1.insert(v1.begin(),1);//在開始位置插入元素1	printV(v1);	v1.insert(v1.begin(),2,33);//在開始位置插入兩個33	printV(v1);	v1.insert(v1.begin(),v1.begin(),v1.end());//在開始位置插入整個區(qū)間元素	printV(v1);}int main(){		cout << "插入操作:" << endl;	main1();	return 0;}

vector的刪除

理論知識

2 vector.clear(); //移除容器的所有數(shù)據(jù)

2 vec.erase(beg,end);  //刪除[beg,end)區(qū)間的數(shù)據(jù),返回下一個數(shù)據(jù)的位置。

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

簡單案例:

刪除區(qū)間內(nèi)的元素

vecInt是用vector<int>聲明的容器,現(xiàn)已包含按順序的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三個元素。

 

假設(shè) 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);       //以迭代器為參數(shù),刪除元素3,并把數(shù)據(jù)刪除后的下一個元素位置返回給迭代器。

         //此時,不執(zhí)行  ++it;  

   }

   else

   {

       ++it;

   }

}

 

//刪除vecInt的所有元素

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

測試代碼:

#include <iostream>using namespace std;#include "vector"void printV(vector<int> &v){	for (int i = 0; i < v.size();i++)	{		cout <<v[i]<< " ";	}	cout << endl;}//刪除操作void main2(){	vector<int> v1(10);	for (int i = 0; i < v1.size(); i++)	{		v1[i] = i + 1;	}	printV(v1);	v1.erase(v1.begin(),v1.begin()+4);//區(qū)間刪除	printV(v1);	v1.erase(v1.begin());//頭部刪除	printV(v1);	v1[0] = 23;	v1[1] = 22;	printV(v1);	for (vector<int>::iterator it = v1.begin(); it != v1.end();)//刪除容器里等于8的元素	{		if (*it == 8)		{			it = v1.erase(it);		}		else			it++;	}	printV(v1);}int main(){	cout << "刪除操作:" << endl;	main2();	return 0;}


上一篇:C++11 emplace

下一篇:C++--第五課-繼承

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 铜陵市| 保靖县| 浠水县| 江都市| 渝北区| 禹城市| 桐柏县| 凌源市| 寻乌县| 黄陵县| 包头市| 安乡县| 襄垣县| 东辽县| 冀州市| 沙湾县| 墨竹工卡县| 滦平县| 游戏| 墨竹工卡县| 东辽县| 临湘市| 高邮市| 乳山市| 延川县| 两当县| 聊城市| 南召县| 南平市| 桂平市| 平江县| 萍乡市| 广丰县| 阳江市| 松江区| 布尔津县| 任丘市| 上高县| 吉安市| 肥东县| 洛阳市|