相比较于vector,数组的缺点

本文探讨了C++中数组的几个缺点,包括数组在声明时必须指定固定大小,运行时无法动态调整大小,易发生越界错误,以及获取长度不便。此外,数组不支持直接拷贝和赋值,而数组的数组要求所有子数组长度一致。相对而言,vector提供了更多的灵活性和安全性。
摘要由CSDN通过智能技术生成

前言

数组和vector一样可以存放任意对象,除了引用,即不存在引用的数组,也不存在引用的vector。

数组的缺点

数组的灵活性差

数组在定义声明时,必须使用常量表达式给出其容量大小,而且程序运行时数组不允许动态的增删元素;vector是可以的,例如push_back添一个元素,erase或pop_back删除元素。

有一个细节,数组的容量必须大于0;vector允许容量为0。

数组在初始化时,用于初始化的元素个数,不能大于数组容量,允许小于或等于数组容量;而vector由于可以添加元素,所以没有这一层的限制(但是使用下标操作vector元素时,跟数组一样不能超出容量范围,即不能下标越界)。

数组不允许拷贝和赋值

不能将数组的内容拷贝给其它数组作为初始值,也不能用数组为其它数组数组赋值;vector允许拷贝和赋值。但是,数组可以通过循环体,一个元素一个元素的拷贝和赋值(注意使用下标时不能越界)。

//假设arr[10]已经定义且初始化
int arr2[] =arr;		//错误,不允许用一个数组去初始化另一个数组
int arr3[10] = {0};
arr3 = arr;			//错误,不能直接的将一个数组赋值给另一个数组

数组更容易越界

数组在使用下标时,很容易因为越界而使程序出错ÿ

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值