Genel sınıflar kütüphanesi - hatalar, açıklamalar, sorular, kullanım özellikleri ve öneriler - sayfa 7

 
İki fonksiyon ve bir dizi kullandığımı çözüme ekleyeceğim. İşaretçi veya bağlantı yok.
 
Peter Konow'un fotoğrafı.
Bir çözüm var. Ancak, entrikayı geçici olarak tutmak için buraya bir yürütülebilir dosya koymak istiyorum. Ayrıca, yetenekli kişiler benim çözümümün performansını ve yukarıdaki yazar tarafından sağlanan çözümü karşılaştıracaktır. Hangisinin daha hızlı çalıştığını merak ediyorum .

Kontrol ettim, Vasily'nin versiyonu daha hızlı çalışıyor. Benim makinemde - ~3.2 kez. Hızlanacak - gel.

 
fxsaber :

Kontrol ettim, Vasily'nin versiyonu daha hızlı çalışıyor. Benim makinemde - ~3.2 kez. Hızlanacak - gel.

Tamam teşekkürler. Belki başka biri tarafsızlığı kontrol eder.
 
fxsaber :

Kontrol ettim, Vasily'nin versiyonu daha hızlı çalışıyor. Benim makinemde - ~3.2 kez. Hızlanacak - gel.

Nasıl test ettiğinizi detaylandırabilir misiniz?
 
Peter Konow'un fotoğrafı.
Nasıl test ettiğinizi detaylandırabilir misiniz?
Belki de giriş alanı yavaştır. Onsuz bir versiyon yapacağım. Senaryodaki Vasily gibi.
 
Peter Konow'un fotoğrafı.
Nasıl test ettiğinizi detaylandırabilir misiniz?

Henüz değil. Ben de senin gibi entrikayı sürdürmek istiyorum.

 
Peter Konow'un fotoğrafı.
Belki de giriş alanı yavaştır. Onsuz bir versiyon yapacağım. Senaryodaki Vasily gibi.

Buraya açık kaynak yazın. Buradaki tüm sonraki yürütülebilir dosyalar silinecek. Bu bir yarışma değil.

 
Artyom Trishkin :

Buraya açık kaynak yazın. Buradaki tüm sonraki yürütülebilir dosyalar silinecek. Bu bir yarışma değil.

Evet, sadece yayınlamak istedim.

 

İşte nasıl göründüğü:

 //+------------------------------------------------------------------+
//|                                                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" );
  }
//+------------------------------------------------------------------+
 
Büyük harfler farklı bir koda sahip olduğundan ve diziden "düştüğünden" dizinin boyutunu artırmak zorunda kaldım.
Neden: