汎用クラスライブラリ - バグ、説明、質問、使用上の特徴、提案 - ページ 7

 
解答には2つの関数と1つの配列を使用したことを付け加えておきます。ポインタやコネクションはありません。
 
タグコノウ
解決策はあります。しかし、一時的な興味本位で、ここにその抜粋を載せておきたい。さらに、それらの熟練者は、私のソリューションと上記の著者が提供するソリューションの性能を比較することになります。どっちが早く効くかなぁ

調べてみると、Vasiliyのバージョンより速いですね。私のマシンでは、〜3.2倍速。なんとかスピードアップしたら、ぜひ来てください。

 
fxsaber

調べてみると、Vasiliyのバージョンより速いですね。私のマシンでは、〜3.2倍速。なんとかスピードアップしたら、ぜひ来てください。

OK、ありがとうございます。もしかしたら、誰かが客観的にチェックしてくれるかもしれません。
 
fxsaber

調べてみると、Vasiliyのバージョンより速いですね。私のマシンでは、〜3.2倍速。なんとかスピードアップしたら、ぜひ来てください。

どのようにテストしたのか、詳しく教えてください。
 
レテグ・コノウ
どのように確認したのか、詳しく教えてください。
入力欄が 遅くなっているのかもしれません。それがないバージョンも作ってみます。台本にあるヴァシリイと同じようにね。
 
タグコノウ
どのようにテストしたのか、詳しく教えてください。

まだです。あなたと同じように、私も陰謀を持ち続けたいのです。

 
コノウを再タグ化
入力欄が 遅くなっているのかもしれません。それがないバージョンも作ってみます。台本にあるヴァシリイと同じようにね。

オープンソースコードをここに書き込む。以下のエクセシュニックはすべてここで削除されます。これはコンテストではありません。

 
アルチョム・トリシキン

オープンソースコードはこちらに書いてください。ここでのそれ以降のエクスハッシュはすべて削除されます。これはコンテストではありません。

はい、ちょうど投稿しようと思っていたところです。

 

このような感じです。

//+------------------------------------------------------------------+
//|                                                Dictiuonary 2.mq5 |
//|                                                      Peter Konow |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Peter Konow"
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
#define  Max_possible_collisions    100
#define  Max_letters_in_word        100
#define  All_letters_in_alphabet    255
//------------------------------------
string Dictionary[Max_possible_collisions][All_letters_in_alphabet][Max_letters_in_word];
//-------------------------------------------------------------------

//+------------------------------------------------------------------+

void Add(string word)
{
 uchar First_letter = (uchar)StringGetCharacter(word,0) - 97;
 //-----------------------
 int All_letters_in_word = StringLen(word);
 //-----------------------
 for(int a1 = 0; a1 < Max_possible_collisions; a1++)
   {
     string word_inside = Dictionary[a1][First_letter][All_letters_in_word];
     //-----------------------   
    if(word_inside == NULL)
      {
       Dictionary[a1][First_letter][All_letters_in_word] = word;
       Print("Your word has been added to our dictionary!");
       break;
      }
    if(word_inside == word)
      {
       Print("This word already exists in our dictionary");
       break;
      } 
   }   
 //------------------------   
}
//--------------------------------------------------------------------+

//--------------------------------------------------------------------+

void OnStart()
  {
   //---
   Add("Text 1");
   
   Add("Text 1");
  }
//+------------------------------------------------------------------+
 
大文字はコードが異なり、配列から「脱落」してしまうので、配列のサイズを 大きくする必要がありました。