nlib
nn::nlib::ReallocVec< T > クラステンプレート

PODを要素に持つベクタをreallocベースで実装しています。 [詳解]

#include "nn/nlib/ReallocVec.h"

公開型

typedef void *(* ReallocFunc) (void *, size_t) NLIB_NOEXCEPT_FUNCPTR
 reallocに相当する関数の型です。
 
typedef
typedef T value_type
 要素型 T
 
typedef size_t size_type
 符号なし整数型(size_t)
 
typedef ptrdiff_t difference_type
 符号つき整数型(ptrdiff_t)
 
typedef T & reference
 要素への参照です。
 
typedef const T & const_reference
 要素への読み取り専用参照です。
 
typedef T * pointer
 要素へのポインタです。
 
typedef const T * const_pointer
 要素への読み取り専用ポインタです。
 
typedef T * iterator
 ランダムアクセス反復子です。
 
typedef const T * const_iterator
 読み取り専用ランダムアクセス反復子です。
 
typedef std::reverse_iterator< iteratorreverse_iterator
 逆反復子です。
 
typedef std::reverse_iterator< const_iteratorconst_reverse_iterator
 読み取り専用逆反復子です。
 

公開メンバ関数

ReallocFunc GetRealloc () const noexcept
 指定したrealloc関数を取得します。 [詳解]
 
bool push_back (const T &v) noexcept
 ベクタに要素を追加します。 [詳解]
 
bool pop_back () noexcept
 ベクタの末尾から要素を削除します。 [詳解]
 
T & operator[] (size_t idx)
 idx 番目の要素を取得します。 [詳解]
 
const T & operator[] (size_t idx) const
 上記関数のconst修飾付き版です。
 
T & front ()
 最初の要素への参照を取得します。
 
const T & front () const
 上記関数のconst修飾付き版です。
 
T & back ()
 最後の要素への参照を取得します。
 
const T & back () const
 上記関数のconst修飾付き版です。
 
iterator begin () noexcept
 先頭要素を指す反復子を取得します。
 
const_iterator begin () const noexcept
 先頭要素を指す読み取り専用反復子を取得します。
 
const_iterator cbegin () const noexcept
 先頭要素を指す読み取り専用反復子を取得します。
 
iterator end () noexcept
 末尾の次を指す反復子を取得します。
 
const_iterator end () const noexcept
 末尾の次を指す読み取り専用反復子を取得します。
 
const_iterator cend () const noexcept
 末尾の次を指す読み取り専用反復子を取得します。
 
reverse_iterator rbegin () noexcept
 末尾要素を指す逆反復子を取得します。
 
const_reverse_iterator rbegin () const noexcept
 末尾要素を指す読み取り専用逆反復子を取得します。
 
reverse_iterator rend () noexcept
 先頭の前を指す逆反復子を取得します。
 
const_reverse_iterator rend () const noexcept
 先頭の前を指す読み取り専用逆反復子を取得します。
 
const_reverse_iterator crbegin () const noexcept
 末尾要素を指す読み取り専用逆反復子を取得します。
 
const_reverse_iterator crend () const noexcept
 先頭の前を指す読み取り専用逆反復子を取得します。
 
size_t size () const noexcept
 格納されている要素数を返します。
 
size_t capacity () const noexcept
 メモリを再確保せずに格納できる最大の要素数を取得する [詳解]
 
bool empty () const noexcept
 格納されている要素数が0ならばtrue、それ以外ならfalseを返します。
 
bool reserve (size_t n) noexcept
 n 個の要素までをメモリを最確保せずに格納できるようにする。 [詳解]
 
bool resize (size_t n) noexcept
 要素数を変更する [詳解]
 
void clear () noexcept
 ベクタを空にします。メモリは確保されたままであることに注意してください。
 
void shrink_to_fit () noexcept
 確保されたメモリを現在の要素数を丁度格納できるサイズにフィッティングします。
 
iterator insert (iterator pos, const T &val)
 要素をposの場所に挿入します。 [詳解]
 
コンストラクタ、デストラクタ、及び初期化
constexpr ReallocVec () noexcept
 デフォルトコンストラクタで、std::reallocを利用します。
 
constexpr ReallocVec (ReallocFunc func) noexcept
 コンストラクタで、realloc関数をユーザーが指定できます。 [詳解]
 
 ReallocVec (ReallocVec &&rhs) noexcept
 ムーブコンストラクタです。
 
ReallocVecoperator= (ReallocVec &&rhs) noexcept
 ムーブ代入演算子です。
 

詳解

template<class T>
class nn::nlib::ReallocVec< T >

PODを要素に持つベクタをreallocベースで実装しています。

テンプレート引数
T要素の型。PODである必要があります。
説明
Tのアライメントはreallocが保証するアライメントに合致している必要があります。

ReallocVec.h32 行目に定義があります。

構築子と解体子

◆ ReallocVec()

template<class T >
constexpr nn::nlib::ReallocVec< T >::ReallocVec ( ReallocFunc  func)
inlineexplicitnoexcept

コンストラクタで、realloc関数をユーザーが指定できます。

引数
[in]funcrealloc関数

ReallocVec.h184 行目に定義があります。

関数詳解

◆ capacity()

template<class T>
nn::nlib::ReallocVec< T >::capacity ( ) const
inlinenoexcept

メモリを再確保せずに格納できる最大の要素数を取得する

戻り値
要素数

ReallocVec.h146 行目に定義があります。

◆ GetRealloc()

template<class T>
nn::nlib::ReallocVec< T >::GetRealloc ( ) const
inlinenoexcept

指定したrealloc関数を取得します。

戻り値
realloc関数

ReallocVec.h99 行目に定義があります。

◆ insert()

template<class T>
nn::nlib::ReallocVec< T >::insert ( iterator  pos,
const T &  val 
)
inline

要素をposの場所に挿入します。

引数
[in]pos挿入する場所
[in]val挿入する要素
戻り値
挿入された要素を指す反復子

ReallocVec.h166 行目に定義があります。

◆ operator[]()

template<class T>
nn::nlib::ReallocVec< T >::operator[] ( size_t  idx)
inline

idx 番目の要素を取得します。

引数
[in]idxインデックス
戻り値
idx番目の要素

ReallocVec.h114 行目に定義があります。

◆ pop_back()

template<class T>
nn::nlib::ReallocVec< T >::pop_back ( )
inlinenoexcept

ベクタの末尾から要素を削除します。

戻り値
削除できた場合はtrue

ReallocVec.h109 行目に定義があります。

◆ push_back()

template<class T>
nn::nlib::ReallocVec< T >::push_back ( const T &  v)
inlinenoexcept

ベクタに要素を追加します。

引数
[in]v追加する要素
戻り値
追加できた場合はtrue

ReallocVec.h100 行目に定義があります。

◆ reserve()

template<class T>
nn::nlib::ReallocVec< T >::reserve ( size_t  n)
inlinenoexcept

n 個の要素までをメモリを最確保せずに格納できるようにする。

引数
[in]n要素数
戻り値
成功した場合はtrue

ReallocVec.h148 行目に定義があります。

◆ resize()

template<class T>
nn::nlib::ReallocVec< T >::resize ( size_t  n)
inlinenoexcept

要素数を変更する

引数
[in]n要素数
戻り値
成功した場合はtrue
説明
要素数が増大した場合、増えた分の要素の値は不定であることに注意してください。

ReallocVec.h149 行目に定義があります。


このクラス詳解は次のファイルから抽出されました: