Boost C++ 库

...世界上最受推崇和专业设计的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu, C++ 编码规范

PrevUpHomeNext

第 24 章. Boost.MultiArray 参考手册

Ronald Garcia

印第安纳大学
开放系统实验室

目录

库概要
MultiArray 概念
符号
关联类型
有效表达式
复杂度保证
不变式
视图的关联类型
模型
数组组件
multi_array
multi_array_ref
const_multi_array_ref
辅助组件
multi_array_types
extent_range
extent_gen
全局对象
视图和子数组生成器
内存布局说明符
范围检查

Boost.MultiArray 由几个组件组成。 MultiArray 概念定义了一个通用的多维容器接口。 multi_array 是一个通用容器类,它模拟 MultiArray。 multi_array_refconst_multi_array_ref 是适配器类。 使用它们,您可以像操作 multi_array 一样操作任何连续数据块。 const_multi_array_refmulti_array_ref 的区别在于,它的元素不能通过它的接口进行修改。 最后,几个辅助类用于创建和专门化数组,并且一些全局对象被定义为库接口的一部分。

库概要

要使用 Boost.MultiArray,您必须在您的源代码中包含头文件 boost/multi_array.hpp。 此文件将以下声明引入范围

namespace boost {
  
  namespace multi_array_types {
    typedef *unspecified* index;
    typedef *unspecified* size_type;
    typedef *unspecified* difference_type;
    typedef *unspecified* index_range;
    typedef *unspecified* extent_range;
    typedef *unspecified* index_gen;
    typedef *unspecified* extent_gen;
  }

  template <typename ValueType, 
            std::size_t NumDims, 
            typename Allocator = std::allocator<ValueType> >
  class multi_array;

  template <typename ValueType, 
            std::size_t NumDims>
  class multi_array_ref;

  template <typename ValueType, 
            std::size_t NumDims> 
  class const_multi_array_ref;

  multi_array_types::extent_gen extents;
  multi_array_types::index_gen  indices;

  template <typename Array, int N> class subarray_gen;
  template <typename Array, int N> class const_subarray_gen;
  template <typename Array, int N> class array_view_gen;
  template <typename Array, int N> class const_array_view_gen;

  class c_storage_order; 
  class fortran_storage_order;
  template <std::size_t NumDims> class general_storage_order;

}

PrevUpHomeNext