Lumino
ln::List< T > Class Template Reference

参照カウントを持つ可変長配列のコンテナテンプレートクラスです。 More...

#include <List.hpp>

Inheritance diagram for ln::List< T >:
ln::ReadOnlyList< T > ln::RefObject

Public Member Functions

 List ()
 空の配列で新しい配列を構築します。
 
 List (const List &ary)
 配列をコピーして新しい配列を構築します。
 
 List (List &&ary)
 別の配列からムーブして構築します。
 
 List (std::initializer_list< T > list)
 初期化子リストから構築します。
 
template<class TIter >
 List (TIter begin, TIter end)
 イテレータの範囲からリストを構築します。
 
 ~List ()
 デストラクタ
 
Listoperator= (const List &ary)
 別の List をこの List に割り当てます。
 
Listoperator= (List &&other)
 別の List をこの List に割り当てます。
 
T & operator[] (int index)
 指定したインデックスにある要素への参照を取得します。
 
const T & operator[] (int index) const
 指定したインデックスにある要素への参照を取得します。
 
bool isEmpty () const noexcept
 配列が空であるかを確認します。
 
int size () const noexcept
 格納されている要素の数を取得します。
 
int capacity () const noexcept
 追加のメモリ割り当てを行わずに追加できる要素の最大数を取得します。
 
reference at (int index)
 指定したインデックスにある要素への参照を取得します。
 
const_reference at (int index) const
 指定したインデックスにある要素への参照を取得します。
 
reference front ()
 先頭要素の参照を返します。
 
const_reference front () const
 先頭要素の参照を返します。
 
reference back ()
 終端要素の参照を返します。
 
const_reference back () const
 終端要素の参照を返します。
 
void reserve (int count)
 メモリを指定したサイズで確保します。
 
void resize (int count)
 要素数を変更します。
 
void resize (int count, const T &value)
 デフォルト値を指定して、要素数を変更します。
 
void shrinkToFit ()
 メモリ領域を現在の要素数まで切り詰めます。
 
iterator begin () noexcept
 先頭要素を指すイテレータを取得します。
 
const_iterator begin () const noexcept
 先頭要素を指すイテレータを取得します。
 
iterator end () noexcept
 末尾の次を指すイテレータを取得します。
 
const_iterator end () const noexcept
 末尾の次を指すイテレータを取得します。
 
const_iterator cbegin () const noexcept
 先頭要素を指す読み取り専用イテレータを取得します。
 
const_iterator cend () const noexcept
 末尾の次を指す読み取り専用イテレータを取得します。
 
template<typename TItr >
void assign (TItr first, TItr last)
 配列を初期化し、指定した範囲の要素をコピーします。
 
void add (const value_type &item)
 末尾に要素を追加します。
 
void addRange (const List< T > &items)
 末尾に別の配列を連結します。
 
void insert (int index, const value_type &item)
 指定したインデックスの位置に要素を挿入します。
 
void insertRange (int index, const List< T > &items)
 指定したインデックスの位置に要素を挿入します。
 
void clear ()
 全ての要素を削除します。
 
iterator erase (iterator pos)
 イテレータで示された位置の要素を削除し、次の要素を示すイテレータを返します。
 
iterator erase (iterator begin, iterator end)
 イテレータで示された位置の要素を削除し、次の要素を示すイテレータを返します。
 
bool remove (const value_type &item)
 item に一致する最初の要素を削除します。(正常に削除された場合は true を返す。要素が見つからなければ false を返す)
 
template<typename TPred >
bool removeIf (TPred pred)
 指定した条件に一致する最初の要素を削除します。(正常に削除された場合は true を返す。要素が見つからなければ false を返す)
 
int removeAll (const value_type &item)
 item に一致する全ての要素を削除し、削除された要素数を返します。
 
template<typename TPred >
int removeAllIf (TPred pred)
 指定した条件に一致する全ての要素を削除し、削除された要素数を返します。
 
void removeAt (int index)
 指定したインデックスにある要素を削除します。
 
void removeFirst ()
 先頭要素を削除します。
 
void removeLast ()
 終端要素を削除します。
 
bool contains (const value_type &item) const
 指定した要素がこの配列内に存在するかどうかを判断します。
 
template<typename TPred >
bool containsIf (TPred pred) const
 指定した条件と一致する要素がこの配列内に存在するかどうかを判断します。
 
int indexOf (const value_type &item, int startIndex=0) const
 要素を指定した位置から検索し、最初に見つかったインデックスを返します。 More...
 
template<typename TPred >
int indexOfIf (TPred pred, int startIndex=0) const
 指定した条件と一致する最初のインデックスを返します。 More...
 
Optional< T > find (const value_type &item) const
 指定した要素と一致する最初の要素を検索し、その要素を指す Optional を返します。見つからなければ値を保持していません。
 
template<typename TPred >
Optional< T > findIf (TPred pred) const
 指定した条件と一致する最初の要素を検索し、その要素を指す Optional を返します。見つからなければ値を保持していません。
 
bool isOutOfRange (int index) const
 指定したインデックスがこの配列の境界の範囲外かを確認します。
 
- Public Member Functions inherited from ln::ReadOnlyList< T >
bool isEmpty () const noexcept
 配列が空であるかを確認します。
 
int size () const noexcept
 格納されている要素の数を取得します。
 
reference front ()
 先頭要素の参照を返します。
 
const_reference front () const
 先頭要素の参照を返します。
 
reference back ()
 終端要素の参照を返します。
 
const_reference back () const
 終端要素の参照を返します。
 
T & operator[] (int index)
 指定したインデックスにある要素への参照を取得します。
 
const T & operator[] (int index) const
 指定したインデックスにある要素への参照を取得します。
 
iterator begin () noexcept
 先頭要素を指すイテレータを取得します。
 
const_iterator begin () const noexcept
 先頭要素を指すイテレータを取得します。
 
iterator end () noexcept
 末尾の次を指すイテレータを取得します。
 
const_iterator end () const noexcept
 末尾の次を指すイテレータを取得します。
 

Additional Inherited Members

- Protected Member Functions inherited from ln::RefObject
virtual void finalize ()
 参照がなくなり、オブジェクトが削除されようとしているときに呼び出されます。実装コードでは仮想関数を呼び出すことができます。主にデストラクタの制限を回避するために使用します。
 

Detailed Description

template<typename T>
class ln::List< T >

参照カウントを持つ可変長配列のコンテナテンプレートクラスです。

インデックスに基づく高速アクセスとインデックスベースの挿入と削除などの機能を提供します。 std::vector とおなじように使用できますが、ヒープに確保された List のインスタンスはベースクラスの RefObject が持つ参照カウントによっても寿命を管理されます。

Member Function Documentation

◆ indexOf()

template<typename T >
int ln::List< T >::indexOf ( const value_type &  item,
int  startIndex = 0 
) const

要素を指定した位置から検索し、最初に見つかったインデックスを返します。

Parameters
[in]item: 検索する要素
[in]startIndex: 検索を開始するインデックス (省略した場合は先頭から)
Returns
検索した要素が最初に現れた位置。見つからなかった場合は -1。

◆ indexOfIf()

template<typename T >
template<typename TPred >
int ln::List< T >::indexOfIf ( TPred  pred,
int  startIndex = 0 
) const

指定した条件と一致する最初のインデックスを返します。

Parameters
[in]pred: 検索条件
[in]startIndex: 検索を開始するインデックス (省略した場合は先頭から)
Returns
検索した要素が最初に現れた位置。見つからなかった場合は -1。

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