‘35. c++动态数组std::vector’ 中介绍了vector的内容,它是标准模板库STlL的一部分。
vector是一个动态增长的数组,而array的大小一开始要给定一个值,不能动态增长,又称为静态数组;vector内存分配在堆上,array在栈上。
此外相对于原始数组,array有更多的api提供使用:
#include <iostream>
#include <string>
#include <array>
int main()
{
std::array<int, 5> arr;
arr.size();
for (auto it = arr.begin(); it!=arr.end(); ++it)
{
std::cout << *it << std::endl;
}
arr[5] = 2;
int oldArr[5];//没有size()函数返回,不能使用迭代器
oldArr[5] = 2;
std::cin.get();
}
查看array源码可以看到,它是一个模板类,数组大小size就是一个模板参数
因此原始数组和array两者中优先选用array使用,它有更多api,且它的内存地址连续,速度也比较快。