일반 클래스 라이브러리 - 버그, 설명, 질문, 사용 기능 및 제안 사항 - 페이지 7

 
나는 두 개의 함수와 하나의 배열을 사용한 솔루션에 추가할 것입니다. 포인터나 연결이 없습니다.
 
피터 코노우 :
해결책이 있습니다. 그러나 일시적으로 음모를 꾸미기 위해 여기에 실행 파일을 넣고 싶습니다. 또한 숙련된 사람들이 내 솔루션과 위의 저자가 제공한 솔루션의 성능을 비교할 것입니다. 어느 것이 더 빨리 작동하는지 궁금합니다 .

확인해보니 Vasily의 버전이 더 빨리 작동합니다. 내 컴퓨터에서 - ~3.2배. 속도가 빨라질 것입니다.

 
fxsaber :

확인해보니 Vasily의 버전이 더 빨리 작동합니다. 내 컴퓨터에서 - ~3.2배. 속도가 빨라질 것입니다.

알았어 고마워. 아마도 다른 누군가가 객관성을 확인할 것입니다.
 
fxsaber :

확인해보니 Vasily의 버전이 더 빨리 작동합니다. 내 컴퓨터에서 - ~3.2배. 속도가 빨라질 것입니다.

어떻게 테스트했는지 자세히 설명해 주시겠습니까?
 
피터 코노우 :
어떻게 테스트했는지 자세히 알려주실 수 있나요?
아마도 입력 필드가 느릴 수 있습니다. 없는 버전을 만들겠습니다. 대본의 Vasily처럼.
 
피터 코노우 :
어떻게 테스트했는지 자세히 설명해 주시겠습니까?

아직 아님. 당신처럼, 나는 음모를 유지하고 싶습니다.

 
피터 코노우 :
아마도 입력 필드가 느릴 수 있습니다. 없는 버전을 만들겠습니다. 대본의 Vasily처럼.

여기에 오픈 소스를 작성하십시오. 여기에 있는 모든 후속 실행 파일이 삭제됩니다. 이것은 경쟁이 아닙니다.

 
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" );
  }
//+------------------------------------------------------------------+
 
대문자의 코드가 다르고 배열에서 "떨어지기" 때문에 배열의 크기 를 늘려야 했습니다.