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

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

#include "nn/nlib/ReallocVec.h"

公開型

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

公開メンバ関数

constexpr ReallocVec () noexcept
 デフォルトコンストラクタで、std::reallocを利用します。
 
constexpr ReallocVec (ReallocFunc func) noexcept
 コンストラクタで、realloc関数をユーザーが指定できます。 [詳解]
 
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
 operator[](size_t idx) を御覧ください。
 
T & front ()
 最初の要素を取得します。 [詳解]
 
const T & front () const
 front()をご覧ください。
 
T & back ()
 最後の要素を取得します。 [詳解]
 
const T & back () const
 back()を御覧ください。
 
iterator begin () noexcept
 先頭要素を指すイテレータを取得する。 [詳解]
 
const_iterator begin () const noexcept
 begin()を御覧ください。
 
const_iterator cbegin () const noexcept
 先頭要素を指す読み取り専用イテレータを取得する。 [詳解]
 
iterator end () noexcept
 末尾の次を指すイテレータを取得する。 [詳解]
 
const_iterator end () const noexcept
 end()を御覧ください。
 
const_iterator cend () const noexcept
 末尾の次を指す読み取り専用イテレータを取得する。 [詳解]
 
reverse_iterator rbegin () noexcept
 末尾要素を指す逆イテレータを取得する。 [詳解]
 
const_reverse_iterator rbegin () const noexcept
 rbegin()を御覧ください。
 
reverse_iterator rend () noexcept
 先頭の前を指す逆イテレータを取得する。 [詳解]
 
const_reverse_iterator rend () const noexcept
 rend()を御覧ください。
 
const_reverse_iterator crbegin () const noexcept
 末尾要素を指す読み取り専用逆イテレータを取得する。 [詳解]
 
const_reverse_iterator crend () const noexcept
 先頭の前を指す読み取り専用逆イテレータを取得する。 [詳解]
 
void swap (ReallocVec &rhs) noexcept
 ベクタを交換する [詳解]
 
size_t size () const noexcept
 ベクタのサイズを取得する [詳解]
 
size_t capacity () const noexcept
 メモリを再確保せずに格納できる最大の要素数を取得する [詳解]
 
bool empty () const noexcept
 ベクタが空かどうかを判定する [詳解]
 
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の場所に挿入します。 [詳解]
 

詳解

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

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

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

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

構築子と解体子

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

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

引数
[in]funcrealloc関数

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

関数詳解

template<class T>
nn::nlib::ReallocVec< T >::back ( )
inline

最後の要素を取得します。

戻り値
最後の要素

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

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

先頭要素を指すイテレータを取得する。

戻り値
先頭要素へのイテレータ

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

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

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

戻り値
要素数

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

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

先頭要素を指す読み取り専用イテレータを取得する。

戻り値
先頭要素への読み取り専用イテレータ

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

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

末尾の次を指す読み取り専用イテレータを取得する。

戻り値
末尾の次を指す読み取り専用イテレータ

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

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

ベクタを空にします。メモリは確保されたままであることに注意してください。

ベクタを空にします。

説明
格納されている文字列領域は解放されますが、ベクタ自体メモリは確保されたままであることに注意してください。

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

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

末尾要素を指す読み取り専用逆イテレータを取得する。

戻り値
末尾要素を指す読み取り専用逆イテレータ

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

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

先頭の前を指す読み取り専用逆イテレータを取得する。

戻り値
先頭の前を指す読み取り専用逆イテレータ

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

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

ベクタが空かどうかを判定する

戻り値
trueならば空

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

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

末尾の次を指すイテレータを取得する。

戻り値
末尾の次を指すイテレータ

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

template<class T>
nn::nlib::ReallocVec< T >::front ( )
inline

最初の要素を取得します。

戻り値
最初の要素

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

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

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

戻り値
realloc関数

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

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

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

引数
[in]pos挿入する場所
[in]val挿入する要素
戻り値
挿入された要素を指すイテレータ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

末尾要素を指す逆イテレータを取得する。

戻り値
末尾要素を指す逆イテレータ

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

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

先頭の前を指す逆イテレータを取得する。

戻り値
先頭の前を指す逆イテレータ

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

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

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

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

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

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

要素数を変更する

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

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

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

ベクタのサイズを取得する

戻り値
ベクタのサイズ

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

template<class T>
nn::nlib::ReallocVec< T >::swap ( ReallocVec< T > &  rhs)
inlinenoexcept

ベクタを交換する

引数
[in]rhs交換対象のベクタ

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


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