Biblioteca de classes genéricas - bugs, descrição, perguntas, recursos de uso e sugestões - página 7

 
Devo acrescentar que usei duas funções e uma matriz na solução. Não há indicações ou ligações.
 
Tag Konow:
Há uma solução. No entanto, para manter temporariamente a intriga, gostaria de afixar aqui o excerto. Além disso, essas pessoas qualificadas irão comparar o desempenho da minha solução e a solução fornecida pelo autor acima. O que será que funciona mais rápido?

Verifiquei, é mais rápido que a versão do Vasiliy. Na minha máquina, ~3,2 vezes mais rápido. Se conseguires acelerar, anda cá.

 
fxsaber:

Verifiquei, é mais rápido que a versão do Vasiliy. Na minha máquina, ~3,2 vezes mais rápido. Se conseguires acelerar, anda cá.

Está bem, obrigado. Talvez outra pessoa verifique a objectividade.
 
fxsaber:

Verifiquei, é mais rápido que a versão do Vasiliy. Na minha máquina, ~3,2 vezes mais rápido. Se conseguires acelerar, anda cá.

Pode dizer-nos mais sobre como o testou?
 
ReTeg Konow:
Podes explicar como verificaste?
Talvez o campo de entrada esteja a abrandar. Vou fazer uma versão sem ela. Como o Vasiliy está no guião.
 
Tag Konow:
Podes explicar como o testaste?

Ainda não. Como tu, eu quero manter a intriga viva.

 
Volte a marcar Konow:
Talvez o campo de entrada esteja a abrandar. Vou fazer uma versão sem ela. Como o Vasiliy está no guião.

Escreva o código aberto aqui. Todos os seguintes exeshniks serão apagados aqui. Isto não é um concurso.

 
Artyom Trishkin:

Escreva o código fonte aberto aqui. Todas as exasperações subsequentes aqui serão apagadas. Isto não é um concurso.

Sim, eu ia agora mesmo afixá-lo.

 

Isto é o que parece:

//+------------------------------------------------------------------+
//|                                                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");
  }
//+------------------------------------------------------------------+
 
Eu tive que aumentar o tamanho da matriz porque as letras maiúsculas têm um código diferente e "desistir" da matriz.