C++标准模版库array

注:每个函数的应用示例会以超链接不断给出类模板array介绍class templatestd::arraytemplate < class T, size_t N > class array;array是c++11引入的新特性,较旧的编译器可能不支持它。array class注:一下来自官方文档翻译,英语不好,多多包涵。数组是固定大小的序列容器:它们包含以严格线性顺序...
摘要由CSDN通过智能技术生成

注:每个函数的应用示例会以超链接不断给出

类模板array介绍

class template
std::array
template < class T, size_t N > class array;
array是c++11引入的新特性,较旧的编译器可能不支持它。

array class

注:一下来自官方文档翻译,英语不好,多多包涵。

数组是固定大小的序列容器:它们包含以严格线性顺序排列的特定数量的元素。

在内部,数组不保留除其包含的元素之外的任何数据(甚至不是它的大小,这是一个模板参数,在编译时固定)。言外之意:数组只保存属于他的元素,并不存储他的大小。它在存储大小方面,和使用语言括号语法([])声明的普通数组一样高效。这个类只是为它添加了一层成员函数和全局函数,因此数组可以用作标准容器。

与其他标准容器不同,数组具有固定大小,并且不通过分配器管理其元素的分配:它们是封装固定大小元素数组的聚合类型。因此,它们不能动态扩展或收缩(如果需要动态扩展大小,请参考类模版vector)。

0大小的数组是有效的,但是它们不应该被间接引用(前面、后面和数据的成员)。

与标准库中的其他容器不同,交换两个数组容器是一种线性操作,涉及单独交换范围中的所有元素,这通常是效率相当低的操作。另一方面,这允许两个容器中的元素的迭代器保持其原始容器关联。

数组容器的另一个独特特性是,它们可以被视为tuple对象:<array> header头文件重载get函数,来获取元素就像他是一个tuple,也使tuple_size和tuple_element类型更专业化。

源码头文件

这里有部分成员=和成员函数,仅供参考,因为下面讲的成员函数没有写形参,这里可以看到。

template <class T, size_t N >
struct array {
   
    // types:
    typedef T&                               reference;
    typedef const T&                         const_reference;
    typedef /*implementation-defined*/       iterator;
    typedef /*implementation-defined*/       const_iterator;
    typedef size_t                           size_type;
    typedef ptrdiff_t                        difference_type;
    typedef T                                value_type;
    typedef T*                               pointer;
    typedef const T*                         const_pointer;
    typedef reverse_iterator<iterator>       reverse_iterator;
    typedef reverse_iterator<const_iterator> const_reverse_iterator;
 
    T elems[N]; // exposi
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值