vector容器基本用法

文章详细介绍了C++标准库中的vector容器,包括其默认构造、带参数构造、赋值方法、查询大小的方式以及插入和移除元素的各种操作。vector提供随机访问和高效尾部操作,但中部和头部操作效率较低。示例展示了如何使用vector存储不同类型的元素及如何进行元素的插入与组合。
摘要由CSDN通过智能技术生成

vector容器
简介:
  • vector是将元素置于一个动态数组中加以管理的容器
  • vector可以随机存取元素(支持索引值直接存取,用[]操作符或at()方法)
  • vector尾部添加或移除元素非常快速,但在中部或头部插入元素或移除元素比较费时
默认构造

采用模板类实现

vector<T> vecT;

vector<int> vecInt;			//一个存放int的vector容器
vector<float> vecFloat;		//一个存放float的vector容器
vector<string> vecString;	//一个存放string的vector容器

class CA{};
vector<CA*> vecpCA;			//存放CA对象的指针的vector容器
vector<CA> vecCA;			//用于存放CA对象的vector容器
带参数构造
  • vector(begin, end); //构造函数将(begin,end)区间的元素拷贝给本身
  • vector(n, elem); //构造函数将n个elem拷贝给本身
  • vector(const vector &vec);//拷贝构造函数
赋值
  • vector.assign(begin, end); //将(begin, end)区间的数据拷贝复制给本身(不能直接为数字)
  • vector.assign(n, elem); //将n个elem拷贝赋值给本身
  • vector& operator = (const vector &vec); //重载等号操作符
  • vector.swap(vec); //将vec与本身的元素互换
大小
  • vector.size(); //返回容器中元素的个数
  • vector.empty(); //判断容器是否为空
  • vector.resize(num); //重新指定容器长度为num,若容器变长,则以默认值填充新位置;若容器变短,则末尾超出容器长度的元素会被删除
  • vector.resize(num, elem); //重新指定容器长度为num,若容器变长,则以elem填充新位置;若容器变短,则末尾超出容器长度的元素会被删除
访问方式
  1. vector[index] //下标法,就像数组一样访问vector容器的值。(注意,如果下标越界,可能会造成程序异常终止,且没有提示)
  2. vector.at(index); //返回索引index所指的数据,如果越界,会抛出异常(out of range)
插入/移除
  • vector.push_back(num); //从末尾插入一个元素
  • vector.pop_back(); //删除末尾的一个元素
  • vector.insert(pos, elem); //在pos位置插入一个elem元素(注意第一个参数不能为下标,应该为指针)例如:vector.insert(vector.begin() + 3, 100)
  • vector.insert(pos,n,elem); //在pos位置插入n个elem元素,无返回值
  • vector.insert(pos,begin,end); //在pos位置插入[begin,end)区间的数据,无返回值
int a[] = {1,2,3,4,5};
int b[] = {10,20,30,40,50};
vector<int> v1;
v1.assign(a,a + 5);//v1为[1,2,3,4,5];
v1.insert(v1.begin()+2, b+1, b+4);
//此时v1为[1,2,20,30,40,3,4,5];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值