SigUtil  0.95
Utility modules for modern C++
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
sig::array< T, N > Class Template Reference

STLライクな静的配列 More...

Public Types

using value_type = T
 
using reference = T &
 
using const_reference = T const &
 
using pointer = T *
 
using const_pointer = T const *
 
using iterator = typename std::array< T, N >::iterator
 
using const_iterator = typename std::array< T, N >::const_iterator
 
using reverse_iterator = typename std::array< T, N >::reverse_iterator
 
using const_reverse_iterator = typename std::array< T, N >::const_reverse_iterator
 
using size_type = size_t
 
using difference_type = typename std::array< T, N >::difference_type
 
using result_type = typename boost::call_traits< T >::value_type
 
using param_type = typename boost::call_traits< T >::param_type
 

Public Member Functions

 array ()
 デフォルトコンストラクタ More...
 
 array (size_type size, T val)
 値をコピーしてコンストラクト More...
 
 array (std::initializer_list< T > init)
 initializer_list から値をムーブしてコンストラクト More...
 
template<size_type M>
 array (std::array< T, M > const &src)
 std::array から値をコピーしてコンストラクト More...
 
template<size_type M>
 array (sig::array< T, M > const &src)
 sig::array(サイズが異なる)から値をコピーしてコンストラクト More...
 
 array (array const &src)
 コピーコンストラクタ More...
 
 array (array &&src)
 ムーブコンストラクタ More...
 
arrayoperator= (array const &src)
 コピー代入演算子 More...
 
arrayoperator= (array &&src)
 ムーブ代入演算子 More...
 
template<size_type M>
arrayoperator= (std::array< T, M > const &src)
 std::array から値をコピーして代入 More...
 
template<size_type M>
arrayoperator= (sig::array< T, M > const &src)
 sig::array(サイズが異なる)から値をコピーして代入 More...
 
bool operator== (array const &obj)
 等値比較演算子 More...
 
bool operator!= (array const &obj)
 非等値比較演算子 More...
 
iterator begin () noexcept
 先頭要素を指すイテレータを返す More...
 
const_iterator begin () const noexcept
 
const_iterator cbegin () const noexcept
 
iterator end () noexcept
 末尾要素の後ろを指すイテレータを返す More...
 
const_iterator end () const noexcept
 
const_iterator cend () const noexcept
 
reverse_iterator rbegin () noexcept
 末尾要素を指す逆イテレータを返す More...
 
const_reverse_iterator rbegin () const noexcept
 
const_reverse_iterator crbegin () const noexcept
 
reverse_iterator rend () noexcept
 先頭要素の前を指す逆イテレータを返す More...
 
const_reverse_iterator rend () const noexcept
 
const_reverse_iterator crend () const noexcept
 
reference at (size_type pos)
 添字による要素へのアクセス More...
 
const_reference at (size_type pos) const
 
reference operator[] (size_type pos)
 添字による要素へのアクセス More...
 
const_reference operator[] (size_type pos) const
 
reference front ()
 先頭要素へのアクセス More...
 
const_reference front () const
 
reference back ()
 末尾要素へのアクセス More...
 
const_reference back () const
 
bool empty () const noexcept
 コンテナが空であるかを確認 More...
 
size_type size () const noexcept
 コンテナに格納された要素数を返す More...
 
size_type max_size () const noexcept
 コンテナの最大容量を返す More...
 
value_typedata () noexcept
 内部で保有する生配列へのポインタを返す More...
 
value_type const * data () const noexcept
 
auto std_array () noexcept-> std::array< T, N > &
 内部で保有するstd::arrayへの参照を返す More...
 
auto std_array () const noexcept-> std::array< T, N > const &
 
void fill (value_type const &val)
 コンテナの全要素(最大容量まで)を指定した値でコピーする More...
 
void swap (array &other)
 他の最大容量が同じsig::arrayと保持メンバを入れ替える More...
 
void push_back (value_type const &val)
 コンテナの末尾に指定した値を追加する More...
 
void push_back (value_type &&val)
 
void pop_back () noexcept
 コンテナの末尾から要素を取り除く More...
 
iterator insert (const_iterator position, const value_type &val)
 指定位置の後ろに指定した値を挿入する More...
 
iterator insert (const_iterator position, value_type &&val)
 
iterator erase (iterator position)
 指定位置の要素を取り除く More...
 
void clear () noexcept
 コンテナを空にする More...
 

Detailed Description

template<class T, size_t N>
class sig::array< T, N >

STLライクな静的配列

std::arrayの利便性を拡張し、固定長なstd::vectorの感覚で使用できる.
基本的に初期化時に全要素に値を入れる使い方を想定しているが、逐次的に末尾に代入していくことも可能.
メンバ関数begin()からend()で得られる範囲は、先頭から値が代入されている末尾までとなる([0]~[N-1]までではない)

Template Parameters
T要素型(必要:デフォルトコンストラクタ、コピーコンストラクタ、コピー代入演算子)
N最大容量

Definition at line 27 of file array.hpp.

Member Typedef Documentation

template<class T, size_t N>
using sig::array< T, N >::const_iterator = typename std::array<T, N>::const_iterator

Definition at line 36 of file array.hpp.

template<class T, size_t N>
using sig::array< T, N >::const_pointer = T const*

Definition at line 34 of file array.hpp.

template<class T, size_t N>
using sig::array< T, N >::const_reference = T const&

Definition at line 32 of file array.hpp.

template<class T, size_t N>
using sig::array< T, N >::const_reverse_iterator = typename std::array<T, N>::const_reverse_iterator

Definition at line 38 of file array.hpp.

template<class T, size_t N>
using sig::array< T, N >::difference_type = typename std::array<T, N>::difference_type

Definition at line 40 of file array.hpp.

template<class T, size_t N>
using sig::array< T, N >::iterator = typename std::array<T, N>::iterator

Definition at line 35 of file array.hpp.

template<class T, size_t N>
using sig::array< T, N >::param_type = typename boost::call_traits<T>::param_type

Definition at line 43 of file array.hpp.

template<class T, size_t N>
using sig::array< T, N >::pointer = T*

Definition at line 33 of file array.hpp.

template<class T, size_t N>
using sig::array< T, N >::reference = T&

Definition at line 31 of file array.hpp.

template<class T, size_t N>
using sig::array< T, N >::result_type = typename boost::call_traits<T>::value_type

Definition at line 42 of file array.hpp.

template<class T, size_t N>
using sig::array< T, N >::reverse_iterator = typename std::array<T, N>::reverse_iterator

Definition at line 37 of file array.hpp.

template<class T, size_t N>
using sig::array< T, N >::size_type = size_t

Definition at line 39 of file array.hpp.

template<class T, size_t N>
using sig::array< T, N >::value_type = T

Definition at line 30 of file array.hpp.

Constructor & Destructor Documentation

template<class T, size_t N>
sig::array< T, N >::array ( )
inline

デフォルトコンストラクタ

Definition at line 96 of file array.hpp.

template<class T, size_t N>
sig::array< T, N >::array ( size_type  size,
val 
)
inline

値をコピーしてコンストラクト

val を size 個コピーする.以降、このオブジェクトには[0]~[size-1]までアクセス可能

Parameters
size生成する要素数(N以下)
val初期化に使用する値

Definition at line 105 of file array.hpp.

template<class T, size_t N>
sig::array< T, N >::array ( std::initializer_list< T >  init)
inline

initializer_list から値をムーブしてコンストラクト

init の先頭から順番に値をムーブする

Parameters
init初期化に使用する値リスト(サイズはN以下)

Definition at line 113 of file array.hpp.

template<class T, size_t N>
template<size_type M>
sig::array< T, N >::array ( std::array< T, M > const &  src)
inlineexplicit

std::array から値をコピーしてコンストラクト

Parameters
src初期化に使用する値リスト(サイズはN以下)

Definition at line 127 of file array.hpp.

template<class T, size_t N>
template<size_type M>
sig::array< T, N >::array ( sig::array< T, M > const &  src)
inlineexplicit

sig::array(サイズが異なる)から値をコピーしてコンストラクト

Parameters
src初期化に使用する値リスト(サイズはN以下)

Definition at line 138 of file array.hpp.

template<class T, size_t N>
sig::array< T, N >::array ( array< T, N > const &  src)
inline

コピーコンストラクタ

Parameters
srcコピー元

Definition at line 148 of file array.hpp.

template<class T, size_t N>
sig::array< T, N >::array ( array< T, N > &&  src)
inline

ムーブコンストラクタ

Parameters
srcムーブ元
Postcondition
src の現サイズは0になる

Definition at line 159 of file array.hpp.

Member Function Documentation

template<class T, size_t N>
reference sig::array< T, N >::at ( size_type  pos)
inline

添字による要素へのアクセス

Parameters
pos添字
Returns
指定要素への参照
Exceptions
std::out_of_range(if pos >= size()

Definition at line 284 of file array.hpp.

template<class T, size_t N>
const_reference sig::array< T, N >::at ( size_type  pos) const
inline

Definition at line 285 of file array.hpp.

template<class T, size_t N>
reference sig::array< T, N >::back ( )
inline

末尾要素へのアクセス

Returns
末尾要素への参照

Definition at line 309 of file array.hpp.

template<class T, size_t N>
const_reference sig::array< T, N >::back ( ) const
inline

Definition at line 310 of file array.hpp.

template<class T, size_t N>
iterator sig::array< T, N >::begin ( )
inlinenoexcept

先頭要素を指すイテレータを返す

Returns
先頭要素を指すイテレータ

Definition at line 243 of file array.hpp.

template<class T, size_t N>
const_iterator sig::array< T, N >::begin ( ) const
inlinenoexcept

Definition at line 244 of file array.hpp.

template<class T, size_t N>
const_iterator sig::array< T, N >::cbegin ( ) const
inlinenoexcept

Definition at line 245 of file array.hpp.

template<class T, size_t N>
const_iterator sig::array< T, N >::cend ( ) const
inlinenoexcept

Definition at line 256 of file array.hpp.

template<class T, size_t N>
void sig::array< T, N >::clear ( )
inlinenoexcept

コンテナを空にする

Definition at line 429 of file array.hpp.

template<class T, size_t N>
const_reverse_iterator sig::array< T, N >::crbegin ( ) const
inlinenoexcept

Definition at line 264 of file array.hpp.

template<class T, size_t N>
const_reverse_iterator sig::array< T, N >::crend ( ) const
inlinenoexcept

Definition at line 274 of file array.hpp.

template<class T, size_t N>
value_type* sig::array< T, N >::data ( )
inlinenoexcept

内部で保有する生配列へのポインタを返す

Returns
先頭要素を指すポインタ

Definition at line 337 of file array.hpp.

template<class T, size_t N>
value_type const* sig::array< T, N >::data ( ) const
inlinenoexcept

Definition at line 338 of file array.hpp.

template<class T, size_t N>
bool sig::array< T, N >::empty ( ) const
inlinenoexcept

コンテナが空であるかを確認

Returns
コンテナが空ならtrue, そうでなければfalse

Definition at line 316 of file array.hpp.

template<class T, size_t N>
iterator sig::array< T, N >::end ( )
inlinenoexcept

末尾要素の後ろを指すイテレータを返す

末尾の添字は最大容量N-1でなく、現在のサイズ(size()が返す値)-1であることに注意.
このイテレータへのアクセスは未定義動作

Returns
末尾要素の後ろを指すイテレータ

Definition at line 254 of file array.hpp.

template<class T, size_t N>
const_iterator sig::array< T, N >::end ( ) const
inlinenoexcept

Definition at line 255 of file array.hpp.

template<class T, size_t N>
iterator sig::array< T, N >::erase ( iterator  position)
inline

指定位置の要素を取り除く

取り除かれた後、それ以降の要素は前に詰められる

Parameters
pos取り除く要素を指すイテレータ
Returns
取り除かれた要素の後ろの要素を指すイテレータ

Definition at line 421 of file array.hpp.

template<class T, size_t N>
void sig::array< T, N >::fill ( value_type const &  val)
inline

コンテナの全要素(最大容量まで)を指定した値でコピーする

コピーしたい値

Definition at line 351 of file array.hpp.

template<class T, size_t N>
reference sig::array< T, N >::front ( )
inline

先頭要素へのアクセス

Returns
先頭要素への参照

Definition at line 302 of file array.hpp.

template<class T, size_t N>
const_reference sig::array< T, N >::front ( ) const
inline

Definition at line 303 of file array.hpp.

template<class T, size_t N>
iterator sig::array< T, N >::insert ( const_iterator  position,
const value_type val 
)
inline

指定位置の後ろに指定した値を挿入する

現在のサイズ(size()が返す値)が最大容量未満であれば、コンテナの指定位置に新しい要素を挿入する

Parameters
position挿入位置を指すイテレータ(この位置の後ろに挿入)
val追加したい値(コピー または ムーブ)
Returns
挿入位置(追加した要素)を指すイテレータ
Exceptions
std::length_error(if size() >= N)

Definition at line 396 of file array.hpp.

template<class T, size_t N>
iterator sig::array< T, N >::insert ( const_iterator  position,
value_type &&  val 
)
inline

Definition at line 404 of file array.hpp.

template<class T, size_t N>
size_type sig::array< T, N >::max_size ( ) const
inlinenoexcept

コンテナの最大容量を返す

Returns
Nの値を返す

Definition at line 331 of file array.hpp.

template<class T, size_t N>
bool sig::array< T, N >::operator!= ( array< T, N > const &  obj)
inline

非等値比較演算子

Definition at line 235 of file array.hpp.

template<class T, size_t N>
array& sig::array< T, N >::operator= ( array< T, N > const &  src)
inline

コピー代入演算子

Parameters
srcコピー元
Returns
このオブジェクトへの参照

Definition at line 174 of file array.hpp.

template<class T, size_t N>
array& sig::array< T, N >::operator= ( array< T, N > &&  src)
inline

ムーブ代入演算子

Parameters
srcムーブ元
Returns
このオブジェクトへの参照
Postcondition
src の現サイズは0になる

Definition at line 189 of file array.hpp.

template<class T, size_t N>
template<size_type M>
array& sig::array< T, N >::operator= ( std::array< T, M > const &  src)
inline

std::array から値をコピーして代入

Parameters
src代入される値リスト(サイズはN以下)
Returns
このオブジェクトへの参照

Definition at line 203 of file array.hpp.

template<class T, size_t N>
template<size_type M>
array& sig::array< T, N >::operator= ( sig::array< T, M > const &  src)
inline

sig::array(サイズが異なる)から値をコピーして代入

Parameters
src代入される値リスト(サイズはN以下)
Returns
このオブジェクトへの参照

Definition at line 218 of file array.hpp.

template<class T, size_t N>
bool sig::array< T, N >::operator== ( array< T, N > const &  obj)
inline

等値比較演算子

Definition at line 227 of file array.hpp.

template<class T, size_t N>
reference sig::array< T, N >::operator[] ( size_type  pos)
inline

添字による要素へのアクセス

現在のサイズ(size()が返す値)以降の添字アクセスは未定義動作

Parameters
pos添字
Returns
指定要素への参照

Definition at line 295 of file array.hpp.

template<class T, size_t N>
const_reference sig::array< T, N >::operator[] ( size_type  pos) const
inline

Definition at line 296 of file array.hpp.

template<class T, size_t N>
void sig::array< T, N >::pop_back ( )
inlinenoexcept

コンテナの末尾から要素を取り除く

Definition at line 383 of file array.hpp.

template<class T, size_t N>
void sig::array< T, N >::push_back ( value_type const &  val)
inline

コンテナの末尾に指定した値を追加する

現在のサイズ(size()が返す値)が最大容量未満であれば、コンテナの末尾に新しく要素を追加する

Parameters
val追加したい値(コピー または ムーブ)
Exceptions
std::length_error(if size() >= N)

Definition at line 371 of file array.hpp.

template<class T, size_t N>
void sig::array< T, N >::push_back ( value_type &&  val)
inline

Definition at line 376 of file array.hpp.

template<class T, size_t N>
reverse_iterator sig::array< T, N >::rbegin ( )
inlinenoexcept

末尾要素を指す逆イテレータを返す

Returns
末尾要素を指す逆イテレータ

Definition at line 262 of file array.hpp.

template<class T, size_t N>
const_reverse_iterator sig::array< T, N >::rbegin ( ) const
inlinenoexcept

Definition at line 263 of file array.hpp.

template<class T, size_t N>
reverse_iterator sig::array< T, N >::rend ( )
inlinenoexcept

先頭要素の前を指す逆イテレータを返す

このイテレータへのアクセスは未定義動作

Returns
先頭要素の前を指す逆イテレータ

Definition at line 272 of file array.hpp.

template<class T, size_t N>
const_reverse_iterator sig::array< T, N >::rend ( ) const
inlinenoexcept

Definition at line 273 of file array.hpp.

template<class T, size_t N>
size_type sig::array< T, N >::size ( ) const
inlinenoexcept

コンテナに格納された要素数を返す

std::distance(begin(), end())と等価. 最大サイズとは異なることに注意

Returns
コンテナに格納された要素数

Definition at line 325 of file array.hpp.

template<class T, size_t N>
auto sig::array< T, N >::std_array ( ) -> std::array<T, N>&
inlinenoexcept

内部で保有するstd::arrayへの参照を返す

Returns
内部で保有するstd::arrayへの参照

Definition at line 344 of file array.hpp.

template<class T, size_t N>
auto sig::array< T, N >::std_array ( ) const -> std::array<T, N> const&
inlinenoexcept

Definition at line 345 of file array.hpp.

template<class T, size_t N>
void sig::array< T, N >::swap ( array< T, N > &  other)
inline

他の最大容量が同じsig::arrayと保持メンバを入れ替える

Parameters
otherswapしたいsig::array

Definition at line 357 of file array.hpp.


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