c++ - 向量有什么区别arr 和 int arr[]
问题描述
vector<int> arr
和之间有什么区别int arr[]
,除了数组具有文件中的一些函数?
int arr[]
orvector<int> arr
和之间存在一些差异array<int, size> are
,因为int arr[]
andvector
与数组和其他数组不同,是动态大小的。
解决方案
数组是一种语言特性,从 C 继承到 C++ 语言。它具有固定大小,并且必须在编译时知道该大小。它将一堆值(或对象)按顺序存储在内存中。它提供了一些功能——您可以使用方括号运算符访问数组的元素。(即int x = arr[4]
会给你第 4 个索引处的元素。)
std::vector
由标准模板库 (STL) 提供。它是一个容器,这意味着它是一个存储其他值和对象的对象。它在一个简单的数组上提供了许多额外的功能。最重要的是,它可以随着新对象的添加或删除而增长。如果向量的增长大于支持其存储的内存,则在内部它将重新分配内存并将存储的值移动到更大的内存中。
注意:向量和数组可以通过迭代器访问,这是循环遍历容器中所有元素的常用方法。
容器存在其他算法,允许进行各种操作、排序、查找等。
推荐阅读
- arduino - 我正在尝试使用电报机器人库配置电报机器人,但出现错误
- angular - 将字符串转换为类打字稿/角度
- java - 在 IntelliJ IDEA 中运行单个 Junit 测试
- python - 在 Python 中解析 XML 文件:检查标签或项目时没有结果
- sql - 运行联合查询时,')' 附近的语法不正确
- css - 如何移动(中心)一个 svg 图标?
- r - 在 R 中绘制均值/平均 ROC 曲线的简单方法
- c# - 整数不应该减少吗?
- reactjs - 使用打字稿,我如何使用reduxForm,connect和withRouter一起使用
- regex - 如何排除部分正则表达式匹配?