c++ array

定义

c++11添加了数组 array, 使用它需要包含 <array> 头文件,定义为:

template<typename _Tp, std::size_t _Nm>
struct array

优点

array不会像c语言中的数组一样会退化成T*。

#include <iostream>
#include <array>

using namespace std;


void func(array<int, 8> & a)
{
    cout << sizeof(a) << endl;
}

int main()
{
    array<int, 8> a;

    cout << sizeof(a) << endl;

    func(a);

    return 0;
}

输出:

32
32

array 具有C风格的数组的优点,比如能够随机访问、知道大小、赋值,同时,支持C++容器的部分功能

缺点

默认情况下,array中的元素值是随机的

不像vector容器,array的swap操作时间复杂度是 O(N)

#include <iostream>
#include <array>
#include <algorithm>

using namespace std;


int main()
{
    array<int, 8> a;

    for (int & e : a)
    {
        cout << e << endl; // 内部是随机值
    }

    a.fill(6);  // 全部赋值为6

    cout << a.size() << ' ' << a.max_size() << endl; // 8 8
    for_each(a.begin(), a.end(), [](int & i) {    // 遍历
        cout << i << ' ';
    });

    a.begin();
    a.end();
    a.cbegin();
    a.cend();
    a.rbegin();
    a.rend();
    a.crbegin();
    a.crend();

    cout << *a.data() << endl;
    cout << a.front() << ' ' << a.back() << endl;
    int *p = a.data();

    array<int, 8> b;

    a == b;
    a != b;
    a < b;

    cout << get<7>(a) << endl;

    return 0;
}

 

转载于:https://www.cnblogs.com/zuofaqi/p/10210480.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值