C++笔记 - std::array

234 阅读1分钟

在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;
}

参考