c++vector常用操作(适于初学者)

本文介绍了C++中的vector容器,它类似动态数组,支持随机访问和尾部快速插入删除。文章详细讲解了vector的定义、常用操作,包括assign、push_back、at、erase、empty、size等方法,并提供了迭代器的使用示例。

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

定义:向量类似动态数组,(也就是可以随机增加不同类型的数据,不用定义长度),并实现对数组元素的随机访问,支持尾部的快速插入和删除。
基本操作
1.定义
vector vec;//用于保存类型为T的向量vec
vectorvec(int n);//可以保存n个类型为T的向量vec
vectorvec(int n,T t);//保存n个类型为T且初值为t的向量vec
vectorvec(vector);//拷贝构造函数
注:T可以为任何数据类型,或者一个类。
例如:

	vector <Student> vec;//定义一个数据类型为Student性的向量 
	Student myss("zhangsan",18,'M',01);
	myss.input();
	vec.push_back(myss);
	vector <Base*> my;//定义一个类型数据类型为指针的向量 
	Base *mys=new Student("zhangsan",18,'M',01);
	mys->input();
	my.push_back(mys);
	Base *myt=new Teacher("wangwu",34,'F',4000);
	myt->input();
	my.push_back(myt);

2.重要操作
vce.assgin(10,5);//给10个对象赋值都为5
vec.assgin(vec1.bengin(),vec1.begin()+3);//将向量vec1的第一个到第三个元素赋给vec
vec.push_back(3);//将3追加到向量尾
vec.at(i);//取位置为i出的元素,下标从0开始计算
vec.erase(i);//删除向量第i个元素(i是删除元素的位置,取其地址)
vec.erase(m,n);//删除向量第m到第n个元素
vec.pop_back();//弹出向量序列最后一个元素
vec.empty();//判断向量是否为空
vec.size();//返回向量的大小
3.迭代器
vector::iterator it;//定义迭代器
vec.begin();//返回指向容器的起始位置的迭代器
vec.end();//返回指向容器的结尾位置的迭代器
vec.insert(it,&x);//在迭代器it出插入对象x,返回指向新插入的迭代器
vec.insert(it,n,&x);//在迭代器it出插入n个对象x,返回空值类型
vec.insert(it,it1,it2);//在迭代器it出插入it1和it2所确定的序列
例如:

vector<int> num(10);
	num.assign(10,5);
	num.push_back(7);
	int x=6;
	vector<int>::iterator it;
	it=num.begin()+3;
	it=num.insert(it,x);
	cout<<num.at(2)<<endl;
	cout<<num.at(3)<<endl;
	cout<<num.at(11)<<endl; 

综合使用
1.输出向量里的所有元素

vector<int> vec(5,2);
	vector<int>::iterator it;
	vector<int>::iterator it1;
	vec.push_back(6);//追加 
	it=vec.begin();
	vec.insert(it,4);//插入 
	it1=vec.begin()+2;
	vec.erase(it1);//删除 
	for(it=vec.begin();it!=vec.end();it++)//输出 
	   cout<<(*it)<<"\t";

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值