vector简单应用(添加删除,清空,访问,二维动态数组)+基础功能

本文介绍了C++中vector的基本操作,包括pop_back()和push_back()的添加删除元素,clear()方法清空容器,排序功能,以及通过迭代器和数组方式访问元素。同时,详细讲解了如何将vector用于动态二维数组,提供了行和列的操作示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

特点:当成数组使用
1.pop_back()&push_back()

#include<iostream>
#include<vector>
using namespace std;
int main()
{
	vector<int>obj;
	for(int i=0;i<10;i++)   //所有i都是临时变量,之后需要的话还要重新定义 
	
	//	obj[i]=i;       这种赋值方式不行————【待类比】 
	{
	obj.push_back(i); 
	cout<<obj[i]<<" ";
    }                    //由忘加{}可知int i的有效范围 
    cout<<"\n";
    //cout<<'\n';     事实证明,cout ""与''内部都是字符时,暂时没什么区别 
    
	for(int i=0;i<5;i++)
	obj.pop_back();
	
	for(int i=0;i<obj.size();i++)
	cout<<obj[i]<<' ';
	return 0;
}

2.clear()

#include<iostream>
#include<vector>
using namespace std;
int main()
{
	vector <int>obj;
    for(int i=0;i<10;i++)
	{
		obj.push_back(i);
		cout<<obj[i]<<",";  //""是内容,''是字符,不过\与%在""可以转义,在''种仍然是一种字符
	 } 
	 cout<<endl;
	 
	 obj.clear();
	 
	 for(int i=0;i<obj.size();i++)
	 cout<<obj[i]<<','<<endl;
	return 0;
}

3.排序

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
	vector<int>obj;
	obj.push_back(2);
	obj.push_back(3);
	obj.push_back(1);
	//obj.push_back();   这种写法不被允许 
	for(int i=0;i<obj.size();i++)
	cout<<obj[i]<<",";
	cout<<endl;
	
	sort(obj.begin(),obj.end());           //sort与reverse的函数声明是指针?均属于algorithm
	for(int i=0;i<obj.size();i++)
	cout<<obj[i]<<' ';
	cout<<endl;
	
	reverse(obj.begin(),obj.end());
	for(int i=0;i<obj.size();i++)
	cout<<obj[i]<<',';
             
	return 0;
}

4.两种访问vector

#include<iostream>
#include<vector>
using namespace std;
int main()
{
	vector<int>obj;
	for(int i=0;i<10;i++)
	obj.push_back(i);
	
	//方式一
	for(int i=0;i<10;i++)
	cout<<obj[i]<<' ';
	cout<<'\n';
	
	//方式二  迭代器访问vector容器 
	vector<int>::iterator it;     //理解为地址 
	for(it=obj.begin();it!=obj.end();it++)
	cout<<*it<<' ';
	
	return 0;
}

5(1).动态二维数组

#include<iostream>
#include<vector>
using namespace std;
int main()
{
	int N=5,M=6;
	//vector<vector<int>obj>obj[N]  错误
	//vector<vector<int> >obj[N]    错误
	vector<vector<int> >obj(N);
	
	for(int i=0;i<obj.size();i++)
	{
		//for(int j=0;j<obj[i].size();j++)
		obj[i].resize(M);         //把每一行扩充为M列 
	}
	
	
		for(int i=0;i<obj.size();i++)
	{
	
		for(int j=0;j<obj[i].size();j++)
		//cout<<obj[i].
		cout<<obj[i][j]<<' ';
		
		cout<<endl;
    }
	//只是循环时判断改为行列的大小,输出访问时可以数组ij or 迭代器 
	return 0; 
}

小结
1.
动态二维数组:obj.功能() 对于行
obj[i].功能() 对于列
2.
访问数组:迭代器指针,数组

5(2)

#include<iostream>
#include<vector>
using namespace std;
int main()
{
	int M=6,N=5;
	vector<vector<int> >obj(N,vector<int>(M));  //注意此处应加' '; 

	for(int i=0;i<obj.size();i++)
	{
		for(int j=0;j<obj[i].size();j++)
		{
			cout<<obj[i][j]<<' ';
		}
		cout<<endl;
	}

	return 0;
}

6.基础功能(暂无对二维数组的功能)

#include<iostream>
#include<vector>
using namespace std;
int main()
{
    vector<int>obj;
	
	cout<<obj.size()<<endl;
	
	for(int i=0;i<5;i++)
	obj.push_back(i);
	
	cout<<"extended vector size="<<obj.size()<<endl;
	
	for(int i=0;i<5;i++)
	cout<<"obj["<<i<<"]="<<obj[i]<<' ' ;
	cout<<endl;
	
	vector<int>::iterator it;
	for(it=obj.begin();it!=obj.end();it++)
	cout<<*it<<' ';
	
	
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值