C++ Vector(向量容器)

C++ Vector是一种动态数组,提供类似于数组的线性顺序存储,但允许在末尾进行高效的插入和删除操作。其特点包括动态扩展、随机访问、节省空间以及在内部插入删除操作效率低。Vector的构造、赋值、访问元素、插入删除等操作有多种方法,如assign()、at()、push_back()和erase()等。为了优化性能,建议在创建时指定Vector的大小。

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

            Vector 一个线性顺序结构的容器。相当于数组,但是其大小可以不预先指定,并且自动扩展,它可以像数组一样操作,但是由于它的特性我们可以将他看做动态数组,

           在创建一个VECTOR 变量后他会自动在内存中分配一块连续的内存空间进行数据存储,初始大小可以预先指定也可以由vector默认指定,这个大小就是capacity()函数的返回值。当存储的数据超过分配的空间是vector会重新分配内存,然后将以前的内容复制到新的空间中,所以重新分配空间比较费时,效率也很低。它的具体步骤如下:

            首先,vector  会申请一块更大的内存块;  
            然后,将原来的数据拷贝到新的内存块中;  
            其次,销毁掉原内存块中的对象(调用对象的析构函数);  
            最后,将原来的内存空间释放掉。 

            如果vector  保存的数据量很大时,这样的操作一定会导致糟糕的性能(这也是vector 被设计成比较容易拷贝的值类型的原因)。所以说vector 不是在什么情况下性能都好,只有在预先知道它大小的情况下vector 的性能才是最优的。   

              vector 的特点:
                                (1) 指定一块如同数组一样的连续存储,但空间可以动态扩展。即它可以像数组一样操作,并且可以进行动态操作。通常体现在push_back() pop_back()  。
                                (2) 随机访问方便,它像数组一样被访问,即支持[ ]  操作符和vector.at()
                                (3) 节省空间,因为它是连续存储,在存储数据的区域都是没有被浪费的,但是要明确一点vector  大多情况下并不是满存的,在未存储的区域实际是浪费的。  
                                (4) 在内部进行插入、删除操作效率非常低,这样的操作基本上是被禁止的。Vector 被设

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值