通用类库 - 错误、说明、问题、使用功能和建议 - 页 7

 
我应该补充一下,我在解决方案中使用了两个函数和一个数组。没有指针或连接。
 
标签 Konow:
有一个解决方案。然而,为了暂时保持好奇心,我想在这里张贴摘录。此外,那些熟练的人将比较我的解决方案和上述作者提供的解决方案的性能。我想知道哪种工作更快

检查了一下,比Vasiliy的版本快。在我的机器上,~3.2倍的速度。如果你设法加快了速度,请过来。

 
fxsaber:

检查了一下,比Vasiliy的版本快。在我的机器上,~3.2倍的速度。如果你设法加快了速度,请过来。

好的,谢谢。也许有其他人会检查一下客观性。
 
fxsaber:

检查了一下,比Vasiliy的版本快。在我的机器上,~3.2倍的速度。如果你设法加快了速度,请过来。

你能告诉我们更多关于你是如何测试它的吗?
 
ReTeg Konow:
你能详细说明一下你是如何检查的吗?
也许输入栏 的速度变慢了。我将做一个没有它的版本。就像剧本中瓦西里的一样。
 
标签 Konow:
你能详细说明一下你是如何测试的吗?

还没有。像你一样,我想保持好奇心。

 
重新标记科诺
也许输入栏 的速度变慢了。我将做一个没有它的版本。就像剧本中瓦西里的一样。

在这里写开放源代码。以下所有的exeshniks都将在这里被删除。这不是一场比赛。

 
阿尔乔姆-特里什金

在这里写下开放源代码。此后这里的所有呼号都将被删除。这不是一场比赛。

是的,我正准备张贴。

 

这就是它看起来的样子。

//+------------------------------------------------------------------+
//|                                                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");
  }
//+------------------------------------------------------------------+
 
我不得不增加数组的大小,因为大写字母有不同的代码,并从数组中 "掉出来"。