C++ std::array

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

如果觉得有帮助,可以扫描右边的微信打赏码支持一下.

参考

Leave a Reply

Your email address will not be published. Required fields are marked *