ArrayCompare 関数
この関数は、同じ型の 2つの配列を比較した結果を取得します。
複雑なオブジェクトを含まない単純なタイプまたはカスタム構造の配列を比較できます。文字列、動的配列、クラスなどが混ざる複雑なオブジェクトを含むものは比較できません。
データ型と構成・戻り値
int ArrayCompare(①,②,③,④,⑤);
戻り値は、
-1:①が②より小さい場合
0:①が②と等しい場合
1:①が②より大きい場合
-2:エラーが発生する時、または③④⑤の値が配列の範囲外にある場合
引数 [5]
ArrayCompare関数は 5個の引数で構成されます。
番 号 | 引数名 | データ型 | 単位 | 初期値 | 説明 |
---|---|---|---|---|---|
① | array1[] | const void& | - | - | 比較する配列①。比較対象は配列②。 |
② | array2[] | const void& | - | - | 比較する配列②。比較対象は配列①。 |
③ | start1 | int | - | 0 | 配列①の開始インデックス。 |
④ | start2 | int | - | 0 | 配列②の開始インデックス。 |
⑤ | count | int | - | WHOLE_ARRAY | コピーする要素の数。「WHOLE_ARRAY」は配列全体がコピーされます。 |
使用例
ArrayCompare関数による配列の比較
比較用配列 1~3の 3つを準備してそれぞれ比較します。1と 3の配列内容は同じです。
コード
// ArrayCompare関数による配列のコピー
#property strict
void OnInit() {
int arr1[3]={11,12,13}; // 比較用配列1
int arr2[3]={21,22,23}; // 比較用配列2
int arr3[3]={11,12,13}; // 比較用配列3
Print("①arr1とarr2を比較:",ArrayCompare(arr1,arr2));
Print("②arr1とarr3を比較:",ArrayCompare(arr1,arr3));
Print("③arr2とarr3を比較:",ArrayCompare(arr2,arr3));
Print("④arr1とarr3を比較:",ArrayCompare(arr1,arr3,4,0));
}
コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)
結果
④の比較は、比較する配列の位置をずらしており、ずらした位置には数字がないためエラー(-2)になります。
![](https://naruhodo-mt4.com/wp-content/uploads/2022/12/P335arraycompare.jpg)