Libreria di classi generiche - bug, descrizione, domande, caratteristiche d'uso e suggerimenti - pagina 7

 
Devo aggiungere che ho usato due funzioni e un array nella soluzione. Non ci sono puntatori o collegamenti.
 
Tag Konow:
C'è una soluzione. Tuttavia, per mantenere temporaneamente l'intrigo, vorrei pubblicare qui l'estratto. Inoltre, quelle persone esperte confronteranno le prestazioni della mia soluzione e la soluzione fornita dall'autore di cui sopra. Mi chiedo quale funzioni più velocemente.

L'ho controllato, è più veloce della versione di Vasiliy. Sulla mia macchina, ~3,2 volte più veloce. Se riuscite a velocizzarlo, venite a trovarci.

 
fxsaber:

L'ho controllato, è più veloce della versione di Vasiliy. Sulla mia macchina, ~3,2 volte più veloce. Se riuscite a velocizzarlo, venite a trovarci.

OK, grazie. Forse qualcun altro controllerà l'obiettività.
 
fxsaber:

L'ho controllato, è più veloce della versione di Vasiliy. Sulla mia macchina, ~3,2 volte più veloce. Se riuscite a velocizzarlo, venite a trovarci.

Puoi dirci di più su come l'hai testato?
 
ReTeg Konow:
Puoi spiegare meglio come hai controllato?
Forse il campo di input sta rallentando. Ne farò una versione senza. Come quello di Vasiliy nella sceneggiatura.
 
Tag Konow:
Puoi spiegarci come l'hai testato?

Non ancora. Come te, voglio mantenere vivo l'intrigo.

 
Re-tag Konow:
Forse il campo di input sta rallentando. Ne farò una versione senza. Come quello di Vasiliy nella sceneggiatura.

Scrivi qui il codice open source. Tutti i seguenti exeshniks saranno cancellati qui. Questo non è un concorso.

 
Artyom Trishkin:

Scrivi qui il codice open source. Tutti gli exhashes successivi qui saranno cancellati. Questo non è un concorso.

Sì, stavo giusto per postarlo.

 

Questo è quello che sembra:

//+------------------------------------------------------------------+
//|                                                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");
  }
//+------------------------------------------------------------------+
 
Ho dovuto aumentare la dimensione dell'array perché le lettere maiuscole hanno un codice diverso e "escono" dall'array.