在C++中,数组是基本的数据结构之一,通常为int a[10] = {0}。那为什么还要引入std::array这么一个数据结构呢?因为std::array除了有内置数组支持随机访问、效率高、存储大小固定等特点外,还支持迭代器访问、获取容量、获得原始指针等高级功能。而且它还不会退化成指针给开发人员造成困惑。更详细的介绍可参考最下面的引用。
下面是实例:
#include <array>
#include <cassert>
#include <iostream>
int main(void) {
std::array<int, 3> a{{1, 2, 3}};
assert(a.at(0) == a.front());
assert(a[2] == a.back());
assert(*(a.data() + 1) == a.at(1));
assert(a.empty() == false);
assert(a.size() == 3);
assert(a.max_size() >= 3);
decltype(a) b;
b.fill(0);
a.swap(b);
for (auto i = a.begin(); i != a.end(); i++) {
assert(*i == 0);
}
return 0;
}