Console Library 4.7.0
A header-only library that makes C++ simple
Loading...
Searching...
No Matches
console::MultiArray< T, D > Class Template Reference

一维特化。 More...

#include <multiarray.h>

Inheritance diagram for console::MultiArray< T, D >:

Public Types

using value_type = T
using reference = T &
using const_reference = const T &

Public Member Functions

 MultiArray ()=default
 默认构造,元素未初始化(基本类型为随机值)。
 MultiArray (const T &value)
 用相同值填充所有元素。
 MultiArray (const base_type &other)
 从 std::array 拷贝构造。
 MultiArray (std::initializer_list< T > init)
 从初始化列表构造(仅一维)。
void fill (const T &value)
 用给定值填充所有元素。
template<class F>
void for_each (F &&visit)
 遍历所有元素并应用函数(非常量版本)。
template<class F>
void for_each (F &&visit) const
 遍历所有元素并应用函数(常量版本)。
reference operator() (size_t i)
 带边界检查的下标访问(一维)。
const_reference operator() (size_t i) const
 常量版本。
T * fbegin ()
 返回指向扁平化数据起始的指针(非常量)。
const T * fbegin () const
 常量版本。
T * fend ()
 返回指向扁平化数据末尾的指针(非常量)。
const T * fend () const
 常量版本。
MultiArrayflatten ()
 扁平化视图(可变)。
const MultiArrayflatten () const
 扁平化视图(常量)。

Static Public Member Functions

static constexpr size_t rank ()
 返回数组的维数(一维时为 1)。
static constexpr size_t fsize ()
 返回元素总数。
static constexpr std::array< size_t, 1 > dims ()
 返回包含维度信息的数组。

Friends

std::ostream & operator<< (std::ostream &os, const MultiArray &ma)
 输出 MultiArray 到流,格式为嵌套的方括号。

Detailed Description

template<class T, size_t D>
class console::MultiArray< T, D >

一维特化。

Template Parameters
T元素类型。
D维度大小。

Member Typedef Documentation

◆ const_reference

template<class T, size_t D>
using console::MultiArray< T, D >::const_reference = const T &

◆ reference

template<class T, size_t D>
using console::MultiArray< T, D >::reference = T &

◆ value_type

template<class T, size_t D>
using console::MultiArray< T, D >::value_type = T

Constructor & Destructor Documentation

◆ MultiArray() [1/4]

template<class T, size_t D>
console::MultiArray< T, D >::MultiArray ( )
default

默认构造,元素未初始化(基本类型为随机值)。

◆ MultiArray() [2/4]

template<class T, size_t D>
console::MultiArray< T, D >::MultiArray ( const T & value)
inlineexplicit

用相同值填充所有元素。

Parameters
value填充值。

◆ MultiArray() [3/4]

template<class T, size_t D>
console::MultiArray< T, D >::MultiArray ( const base_type & other)
inline

从 std::array 拷贝构造。

◆ MultiArray() [4/4]

template<class T, size_t D>
console::MultiArray< T, D >::MultiArray ( std::initializer_list< T > init)
inline

从初始化列表构造(仅一维)。

Parameters
init初始化列表,长度不应超过 D。

Member Function Documentation

◆ dims()

template<class T, size_t D>
constexpr std::array< size_t, 1 > console::MultiArray< T, D >::dims ( )
inlinestaticconstexpr

返回包含维度信息的数组。

Returns
std::array 包含数组各维度的大小,长度为 1。

◆ fbegin() [1/2]

template<class T, size_t D>
T * console::MultiArray< T, D >::fbegin ( )
inline

返回指向扁平化数据起始的指针(非常量)。

◆ fbegin() [2/2]

template<class T, size_t D>
const T * console::MultiArray< T, D >::fbegin ( ) const
inline

常量版本。

◆ fend() [1/2]

template<class T, size_t D>
T * console::MultiArray< T, D >::fend ( )
inline

返回指向扁平化数据末尾的指针(非常量)。

◆ fend() [2/2]

template<class T, size_t D>
const T * console::MultiArray< T, D >::fend ( ) const
inline

常量版本。

◆ fill()

template<class T, size_t D>
void console::MultiArray< T, D >::fill ( const T & value)
inline

用给定值填充所有元素。

◆ flatten() [1/2]

template<class T, size_t D>
MultiArray & console::MultiArray< T, D >::flatten ( )
inline

扁平化视图(可变)。

Note
这并非不安全,可以自行思考。

◆ flatten() [2/2]

template<class T, size_t D>
const MultiArray & console::MultiArray< T, D >::flatten ( ) const
inline

扁平化视图(常量)。

Note
这并非不安全,可以自行思考。

◆ for_each() [1/2]

template<class T, size_t D>
template<class F>
void console::MultiArray< T, D >::for_each ( F && visit)
inline

遍历所有元素并应用函数(非常量版本)。

Template Parameters
F可调用对象,接受 T&。
Parameters
visit函数对象。

◆ for_each() [2/2]

template<class T, size_t D>
template<class F>
void console::MultiArray< T, D >::for_each ( F && visit) const
inline

遍历所有元素并应用函数(常量版本)。

Template Parameters
F可调用对象,接受 const T&。
Parameters
visit函数对象。

◆ fsize()

template<class T, size_t D>
constexpr size_t console::MultiArray< T, D >::fsize ( )
inlinestaticconstexpr

返回元素总数。

◆ operator()() [1/2]

template<class T, size_t D>
reference console::MultiArray< T, D >::operator() ( size_t i)
inline

带边界检查的下标访问(一维)。

Parameters
i索引。
Returns
T& 元素引用。
Exceptions
multiarray_error若索引越界。

◆ operator()() [2/2]

template<class T, size_t D>
const_reference console::MultiArray< T, D >::operator() ( size_t i) const
inline

常量版本。

◆ rank()

template<class T, size_t D>
constexpr size_t console::MultiArray< T, D >::rank ( )
inlinestaticconstexpr

返回数组的维数(一维时为 1)。

◆ operator<<

template<class T, size_t D>
std::ostream & operator<< ( std::ostream & os,
const MultiArray< T, D > & ma )
friend

输出 MultiArray 到流,格式为嵌套的方括号。


The documentation for this class was generated from the following file: