我是靠谱客的博主 外向帆布鞋,最近开发中收集的这篇文章主要介绍array解析及操作,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

介绍

模板定义的一种相当于标准数组的容器类型。

使用

创建
std::array<double, 100> data {}; // 创建100个double,值全0
std::array<double, 10> values {0.5, 1.0, 1.5, 2.0}; // 值初始化
赋值
values.fill(3); // 所有元素全部赋值3

源码

从里面可以看到支持了begin end 和size

template <typename T>
  struct Array
  {
    std::size_t size_;
    const T *data_;

    Array()
    : size_(0), data_(nullptr) {} //可以看见默认是0和空指针

    Array(size_t s, const T *p)
    : size_(s), data_(p) {}      // 大小和数据指针

    const T*
    begin() const
    { return data_; } //提供了bigin end size操作

    const T*
    end() const
    { return data_ + size_; }

    std::size_t
    size() const
    { return size_; }
  };

辨析

和普通数组的区别

  1. 访问更安全: at(),当用一个非法的索引访问数组元素时,能够被检测到
  2. 使用方便:数组容器可以作为参数传给函数,而不再需要单独去指定数组元素的个数
  3. 遍历机制:有正向和反向迭代器
  4. 一些函数支持:size,empty,front,back,swap,assign

和vector区别:

  1. 虽然底层都是数组,但是array不能动态扩展,vector能

最后

以上就是外向帆布鞋为你收集整理的array解析及操作的全部内容,希望文章能够帮你解决array解析及操作所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部