Библиотека Generic классов - ошибки, описание, вопросы, особенности использования и предложения - страница 7

 
Добавлю, что в решении я использовал две функции и один массив. Нет указателей или подключений.
 
Реter Konow:
Есть решение. Однако, чтобы временно сохранить интригу, я бы хотел выставить сюда экзешник. Далее, умеющие люди сравнят производительность моего решения и решения предоставленного автором выше. Интересно, что работает быстрее.

Проверил, быстрее работает вариант Василия. На моей машине - в ~3.2 раза. Получится ускорить - приходите.

 
fxsaber:

Проверил, быстрее работает вариант Василия. На моей машине - в ~3.2 раза. Получится ускорить - приходите.

Ясно, спасибо. Возможно еще кто то проверит для объективности.
 
fxsaber:

Проверил, быстрее работает вариант Василия. На моей машине - в ~3.2 раза. Получится ускорить - приходите.

А вы можете подробнее рассказать как вы проверяли?
 
Реter Konow:
А вы можете подробнее рассказать как вы проверяли?
Возможно, поле ввода тормозит. Сделаю версию без него. Как у Василия в скрипте.
 
Реter Konow:
А вы можете подробнее рассказать как вы проверяли?

Нет пока. Хочется, как и Вам, сохранить интригу.

 
Реter Konow:
Возможно, поле ввода тормозит. Сделаю версию без него. Как у Василия в скрипте.

Пишите здесь открытый код. Все последующие экзешники здесь будут удаляться. Это не конкурс.

 
Artyom Trishkin:

Пишите здесь открытый код. Все последующие экзешники здесь будут удаляться. Это не конкурс.

Да, я как раз хотел выставить.

 

Вот как он выглядит:

//+------------------------------------------------------------------+
//|                                                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");
  }
//+------------------------------------------------------------------+
 
Пришлось увеличить размер массива, так как заглавные буквы имеют другой код и "выпадают" из массива.
Причина обращения: