C++ vector用法详解

vector(向量)

vector是一种类模板,属于C++标准模板库(STL)中的一部分,它是一个可以存储任意数据类型元素的动态数组(封装好的类),也因此被我们称之为容器。
使用它需要包含的头文件: <vector>

一、vector初始化

1.构造函数:

初始化:

	// 构造一个存放int类型数据的空vector容器
	vector<int> p;

	// 构造长度为6的vector对象p1, 内容采用默认值为0
	vector<int> p1(6);

	// 创建长度为3的vector对象p1, 内容全为10
	vector<int> p2(3, 10);

一些不是很常用的初始化如下:

	// 拷贝构造函数, 将p2的值赋值给p3,它们的值是相等的
	vector<int> p3(p2);

	// 将p2 中(下标为0-1)前两个值赋值给 p4
	// begin() 是第一个元素位置
	// vector<int> p4(开始位置, 结束位置);
	vector<int> p4(p2.begin(), p2.begin() + 2);

	// 也可以使用数组创建, 用法跟前一个相似
	int arr[6] = {1, 2, 3, 4, 5, 6};
	vector<int> p5(arr, arr + 6);

二、其他常用方法

1.操作:
1.1插入
	// 给容器p 赋值,容量为8,内容全为7
	// 也可以使用迭代器或数组赋值
	p.assign(8, 7);

	// 在容器末尾添加元素6
	p.push_back(6);

	// 在第一个位置插入66,插入后会返回新数据的位置
	p.insert(p.begin(), 66);

	// 在容器p的末尾 插入3个 77
	p.insert(p.end(), 3, 77);

	// 在容器p的末尾 插入区间[beg, end)区间的数据
	// 可以使用迭代器 也可以使用数组
	p.insert(p.end(), arr, arr + 3);
1.2删除
	// 移除容器中最后一个元素
	p.pop_back();
	
	// 删除整个p容器中的所有元素
	p.clear();

	// 删除指定位置的单个元素(下标从0开始)
	p.erase(p.begin() + 1);

	// 删除指定范围的元素
	p.erase(p.begin(), p.begin() + 3);
1.3修改
	// 修改p容器下标为2的元素值为888 注意是否越界
	p[2] = 888;

	// 修改p容器下标为3的元素值为666 注意是否越界
	p.at(3) = 666;

	// 修改p容器第一个元素值为111
	p.front() = 111;

	// 修改p容器最后一个元素值为888
	p.back() = 33333;
	
	// 将p和p1的内容进行交换
	// 可以这样理解(当函数执行后,当前p == 前p1 当前p1 == 前p)
	p.swap(p1);
1.4访问
	// 访问指定下标的元素(返回容器p下标为2的元素)
	p.at(2);
	p[2];

	// 访问容器p的第一个元素
	p.front();

	// 访问容器p的最后一个元素
	p.back();
	
	// 返回容器p中元素的个数
	p.size();

	// 判断容器是否为空
	p.empty();
	
	// 返回容器第一个元素的指针
	p.data();
	
	// 返回可存储的最大元素个数
	p.max_size();

	// 返回容器的大小
	// 有时候会跟size()一样,有时会比size()大
	p.capacity();
1.6重置大小
	// 重新指定容器的长度为6,若容器变长,则以默认值填充新位置。
	// 如果容器变短,则末尾超出容器长度的元素被删除。
	p.resize(6);

	// 重新指定容器的长度为6,若容器变长,则以88值填充新位置。
	// 如果容器变短,则末尾超出容器长度的元素被删除
	p.resize(6, 88);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值