記事"MQL5 クックブック: 連想配列またはクイック データアクセスのための辞書の実装"についてのディスカッション

 

新しい記事 MQL5 クックブック: 連想配列またはクイック データアクセスのための辞書の実装 はパブリッシュされました:

本稿はユニークなキーによってエレメントへのアクセスが可能となる特殊なアルゴリズムについて説明します。キーとして任意のベースデータタイプが使用可能です。たとえば文字列や整数変数として表すことが可能です。そのようなデータのコンテナは一般的に辞書または連想配列と呼ばれます。それにより課題解決に対するより簡単で効果的な方法が提供されます。

本稿は情報を便利に格納するためのクラスについて説明します。すなわち連想配列または辞書です。このクラスによりキーによってエレメントへのアクセスが可能となります。

連想配列は通常の配列に似ています。ただインデックスの代わりに連想配列はいくつか独自のキーを使用します。たとえば列挙 ENUM_TIMEFRAMES やテキストなどです。キーが何を表すかは問題ではありません。重要なのはキーのユニークさです。このデータ格納アルゴリズムは多くのプログラミング側面を大幅にシンプル化します。

たとえば、エラーコードを取りエラーに相当するテキストを出力する関数は以下のようなものとなるでしょう。

//+------------------------------------------------------------------+
//| Displays the error description in the terminal.                  |
//| Displays "Unknown error" if error id is unknown                  |
//+------------------------------------------------------------------+
void PrintError(int error)
 {
   Dictionary dict;
   CStringNode* node = dict.GetObjectByKey(error);
   if(node != NULL)
      printf(node.Value());
   else
      printf("Unknown error");
 }

あとでこのコードの特別な機能について詳しくみていきます。

連想配列の内部ロジックを直接説明する前に、データ格納の主要な2とおりの方法を考察しようと思います。すなわち配列とリストです。われわれの辞書 はこの2とおりのデータタイプを基にしています。それがそれらの特定の機能をよく理解しなければならない理由です。第1章はデータタイプについて説明しま す。第2章では連想配列とそれと連携するメソッドについて説明します。

作者: Vasiliy Sokolov