Biblioteca de clases genéricas - errores, descripción, preguntas, características de uso y sugerencias - página 7

 
Debo añadir que he utilizado dos funciones y un array en la solución. No hay punteros ni conexiones.
 
Etiqueta Konow:
Hay una solución. Sin embargo, para mantener temporalmente la intriga, me gustaría publicar aquí el extracto. Además, esas personas capacitadas compararán el rendimiento de mi solución y la solución proporcionada por el autor anterior. Me pregunto cuál funciona más rápido.

Lo he comprobado, es más rápido que la versión de Vasiliy. En mi máquina, ~3,2 veces más rápido. Si consigues acelerarlo, acércate.

 
fxsaber:

Lo he comprobado, es más rápido que la versión de Vasiliy. En mi máquina, ~3,2 veces más rápido. Si consigues acelerarlo, acércate.

Bien, gracias. Quizás alguien más compruebe la objetividad.
 
fxsaber:

Lo he comprobado, es más rápido que la versión de Vasiliy. En mi máquina, ~3,2 veces más rápido. Si consigues acelerarlo, acércate.

¿Puede decirnos más sobre cómo lo probó?
 
ReTeg Konow:
¿Puede explicar con más detalle cómo lo ha comprobado?
Tal vez el campo de entrada se esté ralentizando. Haré una versión sin ella. Como la de Vasiliy en el guión.
 
Etiqueta Konow:
¿Puede explicar con más detalle cómo lo ha probado?

Todavía no. Como tú, quiero mantener la intriga.

 
Vuelve a etiquetar a Konow:
Tal vez el campo de entrada se esté ralentizando. Haré una versión sin ella. Como la de Vasiliy en el guión.

Escriba aquí el código fuente abierto. Todos los siguientes exeshniks serán borrados aquí. Esto no es un concurso.

 
Artyom Trishkin:

Escriba el código fuente abierto aquí. Todos los guiones posteriores serán eliminados. Esto no es un concurso.

Sí, estaba a punto de publicarlo.

 

Esto es lo 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");
  }
//+------------------------------------------------------------------+
 
Tuve que aumentar el tamaño de la matriz porque las mayúsculas tienen un código diferente y "se salen" de la matriz.