Compare

リスト内のデータ要素を他の要素と比較します。

virtual int  Compare(
  const CObject*  node,    // Node to compare with
  const int      mode=0    // Compare mode
  ) const

パラメータ

node

[in]  比較する要素へのポインタ

mode=0

[in]  比較するもの

戻り値

両方の要素が等しい場合は 0、1 番目が 2 番目より小さい場合は -1 、 1 番目が 2 番目より大きい場合は 1

注意事項

CObject クラスの Compare() メソッドは常に true を戻し何のアクションも取りません。派生クラスでデータを比較したい場合には Compare(...) メソッドが実装されるべきです。「mode」パラメータは、多変量比較を実装する際に使用する必要があります。

例:

//--- CObject::Compare(...) の例
#include <Object.mqh>
//---
void OnStart()
 {
  CObject *object_first,*object_second;
  //---
  object_first=new CObject;
  if(object_first==NULL)
    {
    printf("Object create error");
    return;
    }
  object_second=new CObject;
  if(object_second==NULL)
    {
    printf("Object create error");
    delete object_first;
    return;
    }
  //--- リンクを設定
  object_first.Next(object_second);
  object_second.Prev(object_first);
  //--- オブジェクトを比較する
  int result=object_first.Compare(object_second);
  //--- オブジェクトを削除する
  delete object_first;
  delete object_second;
 }