C++ Array

Array 类

Array是一个固定大小的序列容器;严格按照线性序列存储指定数量的元素。

Array的大小允许为0,但是大小为0的array,不允许解引用(front,back,data成员函数);

与标准库中的其他容器不同,交换两个array是一个线性操作,需要依次交换所有的元素,这是一个效率极其低下的原因。

不过,它允许两个容器中的元素迭代器保持其原始容器关联。

Array另一个独特的特征是,它可以被当作tuple(元组)对象;头文件<array>中包含了get函数访问数组的元素,就好像它是一个元组,以及专门的tuple_size和tuple_element类型。

Array 容器的属性

有序性:序列容器中的元素严格按照线性顺序排列,各个元素按其顺序访问他们的位置。

连续存储:元素存储在连续的存储器位置,允许对元素进行恒定的随机访问。可以偏移元素的指针以访问其他元素。

存储容量固定:容器使用隐式构造函数和析构函数静态分配所需的空间,它的大小是编译时常量,没有内存或事件的开销。

成员类型

以下别名是数组的成员类型。它们被成员函数广泛用作参数和返回类型:

member typedefinitionnotes
value_typeThe first template parameter (T) 
referencevalue_type& 
const_referenceconst value_type& 
pointervalue_type* 
const_pointerconst value_type* 
iteratorrandom access iterator to value_typeconvertible to const_iterator
const_iteratorrandom access iterator to const value_type 
reverse_iteratorreverse_iterator<iterator> 
const_reverse_iteratorreverse_iterator<const_iterator> 
size_typesize_tunsigned integral type
difference_typeptrdiff_tsigned integral type

 成员函数

迭代器

  • begin:返回指向容器的开始位置的迭代器。
  • end:  返回指向容器的最后位置的下一位的迭代器。
  • rbegin:返回反向迭代器以反向开始,即从原容器的最后一个元素位置,迭代方向由后向前。( rbegin----reverse begin)
  • rend:与rbegin相反,返回反向迭代器以反向结尾元素的前一位,即原容器的第一个元素的前一个位置。
  • cbegin:返回指向容器开始位置的常量迭代器,即不可以通过cbegin返回的迭代器改变所指向的元素的值。(cbegin----const begin)
  • cend:返回指向容器最后一个元素的下一位的常量迭代器。
  • crbegin:返回反向常量迭代器以反向开始,也不可是使用crbegin改变所指向元素的值。
  • crend:返回反向常量迭代器以反向结尾的元素的前一位,同样不可使用crend改变所指向元素的值。

容量

  • size:返回容器的大小。
  • max_size:返回容器的最大容量。(与size 始终相等)
  • empty:返回容器是否为空,为空返回true 否则返回false。

元素访问

  • [] 操作:使用下表访问指定位置元素。
  • at:与[]等价。
  • front:返回容器的第一个元素。
  • back:返回容器的最后一个元素。
  • data:返回指向数组对象包含的数据的指针。

修饰符

  • fill:使用指定的值填充数组。
  • swap:交换元素。

(以上成员函数均为公有成员函数(public member function)

非成员函数-重载

 

  • get<>(array) :返回array数组中指定位置元素的引用。(从tuple重载)
  • 关系运算符:
    operationequivalent operation
    a!=b!(a==b)
    a>bb<a
    a<=b!(b<a)
    a>=b!(a<b)

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值