vector容器的自增长分析

本文探讨了C++中vector容器的工作原理,特别是当插入元素导致容量不足时,vector如何实现动态扩容。它通过创建新的、更大的数组并将原有元素复制到新数组中来确保容量增加,这一过程对性能有一定影响。
摘要由CSDN通过智能技术生成

vector是用数组做的,因此具备数组的优(具有下标,操作很快)缺(一旦数组大小定义好了就不允许再改变)点。当vector容器中加入新的元素时,若容器容量不够,则创建新的更大容量的数组,再将原数组中的元素copy进来;

#include<iostream>
#include<vector>

int main()
{
	std::vector<int> v;
	int i = 0;
	while (i++ < 30)
	{
		v.push_back(i);
		std::cout << "容器大小:" << v.size() << "; 容器容量:" << v.capacity() << std::endl;
	}
	// 操作环境:window10,visual studio 2017, Debug, x86
	/*输出结果:(分析,先给容器分配一定容量,当容量不够时,创建新的数组,将原数组中的元素copy进来,因此扩大容量过程比较耗时(copy数据操作),其容量自动增长50%(为了避免频繁地扩大容量,增长%多少和开发环境有关))
	容器大小:1容器容量:1
	容器大小:2容器容量:2
	容器大小:3容器容量:3
	容器大小:4容器容量:4
	容器大小:5容器容量:6
	容器大小:6容器容量:6
	容器大小:7容器容量:9
	容器大小:8容器容量:9
	容器大小&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值