- FreeMode
- FreeMode
- Reserve
- Resize
- Clear
- Shutdown
- CreateElement
- Add
- AddArray
- Insert
- InsertArray
- AssignArray
- Update
- Shift
- Detach
- Delete
- DeleteRange
- At
- CompareArray
- InsertSort
- Search
- SearchGreat
- SearchLess
- SearchGreatOrEqual
- SearchLessOrEqual
- SearchFirst
- SearchLast
- Save
- Load
- Type
CArrayObj
CArrayObj クラスは、CObjectと派生クラスのインスタンスへのポインタの動的配列のクラスです。
説明
CArrayObj クラスは、CObject とその派生クラスのインスタンスの動的配列のポインタを操作する機能を提供します。これは、基本データ型のデータ及びより複雑な構成を持つデータ構造体を持つ多次元動的配列を操作することが出来ます。
配列要素の追加/挿入/削除、配列のソート、ソートされた配列での検索が実装されています。またファイル操作のメソッドも実装されています。
CArrayObj クラスにはいくつかの注意点があります。
宣言
class CArrayObj : public CArray |
タイトル
#include <Arrays\ArrayObj.mqh> |
継承階層CArrayObj 直接子孫 |
クラスメソッド
属性 |
|
---|---|
メモリ管理フラグを取得します。 |
|
メモリ管理フラグを設定します。 |
|
メモリ制御 |
|
メモリを割り当てて、配列のサイズを増加します。 |
|
配列の新しい(減少した)サイズを設定します。 |
|
配列をクリアして、配列メモリ(要素メモリ以外)を完全に開放します。 |
|
追加メソッド |
|
配列の最後に要素を追加します。 |
|
配列の最後に要素を追加します。 |
|
指定された位置に配列の要素を挿入します。 |
|
指定された位置に別の配列の要素を挿入します。 |
|
別の配列の要素を複製します。 |
|
更新メソッド |
|
指定された位置の配列の要素を変更します。 |
|
配列内の指定された位置から要素を指定されたオフセットに移動します。 |
|
削除メソッド |
|
配列の指定された位置から要素を取得して、配列から削除します。 |
|
配列の指定された位置から要素を削除します。 |
|
配列の指定された位置から要素のグループを削除します。 |
|
メモリを解放せずに、配列の全ての要素を削除します。 |
|
アクセスメソッド |
|
配列の指定された位置から要素を取得します。 |
|
比較メソッド |
|
配列を別の配列と比較します。 |
|
ソートされた配列の操作 |
|
ソートされた配列に要素を挿入します。 |
|
ソートされた配列内でサンプルに等しい要素を検索します。 |
|
ソートされた配列内でサンプルより大きい要素を検索します。 |
|
ソートされた配列内でサンプルより小さい要素を検索します。 |
|
ソートされた配列内でサンプル以上の要素を検索します。 |
|
ソートされた配列内でサンプル以下の要素を検索します。 |
|
ソートされた配列内でサンプルに等しい最初の要素を検索します。 |
|
ソートされた配列内でサンプルに等しい最後の要素を検索します。 |
|
入出力 |
|
データ配列をファイルに保存します。 |
|
データ配列をファイルから読み込みます。 |
|
配列の型識別子を取得します。 |
クラスから継承されたメソッド CObject Prev, Prev, Next, Next, Compare |
---|
クラスから継承されたメソッド CArray Step, Step, Total, Available, Max, IsSorted, SortMode, Clear, Sort |
実用的な配列は(標準ライブラリの全てのクラスを含む)CObject クラスから派生します。
例として、2 次元配列を見てみます。
#include <Arrays\ArrayDouble.mqh>
|
注意点 #
このクラスは動的メモリを制御するので、配列の要素を操作する際には注意するべきです。
メモリ管理のメカニズムは、FreeMode (bool) メソッドを使用して有効/無効に出来ます。デフォルトではメカニズムは有効です。
よって、CArrayObj クラス操作の方法は 2 つあります。
1. メモリ管理のメカニズムが有効(デフォルト)
この場合、CArrayObj は、要素が配列から除去された後、要素に使用されていたメモリを解放する責任を負います。このプログラムでは、ユーザは、配列要素を解放してはいけません。
例:
int i;
|
2. メモリ管理のメカニズムが無効
この場合、CArrayObj は、要素が配列から除去された後、要素に使用されていたメモリを解放する責任を負いません。ユーザプログラムが配列要素を解放するべきです。
例:
int i;
|