神奇的 Vector 动态数组
什么是 Vector
Vector 是一个动态数组(dynamic array),提供了很多操作的接口,使用 Vector 需要引入头文件 #include
Vector 是一种动态的顺序表结构,可以像数组一样访问、随机访问、只用迭代器访问其中的元素
Vector 的属性
大小和容量
对于常规数组来说,最大的限制就是其大小必须事先定义好,而 Vector 中通过 size() 和 capacity() 分别来表示其大小和容量,其中 size() 用来表示大小,即 Vector 中当前存放了多少数据;capacity() 用来表示容量,即 Vector 中最大存放的数据是多少,而当 size() 将要超过 capacity() 时,Vector 会自动扩充其容量,这就是 Vector 是动态数组的原因
1 | vector<int> a;//定义 int 类型的 Vector |
以上代码可以很好的反应 capacity() 可以自行扩大的特性
定义
1 | vector<DataType> item;//定义 Vector |
Vector 动态数组里可以存放任何类型的变量,但前提是一个 Vector 只能存放同一种类型的数据,并且 Vector 中有很多定义方法,可以根据需求使用不同的方法来定义你的 Vector
一些方法
1 | vector<int> item; |
迭代器!
迭代器用来访问 Vector 中的数据元素,这也是 Vector 特有的功能,使用迭代器可以实现一种十分简便的遍历方法
1 | std::vector<int>::iterator it1 = item.begin(); |
迭代器可以正反迭代
1 | for (auto it = a.cbegin(); it != a.cend(); it++) |
auto 在 C++ 11 中的作用是自动推断变量类型,但是必须在定义时就初始化该变量,类似于 const
总结
Vector 的本质就是一个动态数组,因为基本操作上是一个有序容器,所以也可以当作栈或者表来使用