Ошибки, баги, вопросы - страница 2152

 
Itum:

Как можно сравнить два массива?

элементы уникальные?
 
Комбинатор:
элементы уникальные?
да
 
Itum:
да
сортируете оба массива затем за один синхронный проход ищете разницу
 
Комбинатор:
сортируете оба массива затем за один синхронный проход ищете разницу
А как такое сделать... Тут еще разные размеры массивов
 
Itum:

Как можно сравнить два массива?

Нужно вычислить каких элементов нет в массиве array2 в сравнении с array1

Результат должен быть: 6 и 7


Об этом речь и подымалась - есть возможности языка но нету "инфраструктуры" по решению элементарных алгоритмических задач.
Вот сколько усилий занимает решение поставленной задачи на Python:

set1 = set([1,2,3,4,5,6,7])
set2 = set([1,2,3,4,5])
result = set1-set2

print(result)
Out[1]: {6, 7}


А сколько нужно, что бы решить на MQL?
Стандартная библиотека как-то помочь может, или нет?

 

Перерыл все что только можно. В разных языках везде есть для этого функции и действительно там все просто...

я делаю на MQL4 ... нужно сделать все как можно проще.

 
Itum:

Перерыл все что только можно. В разных языках везде есть для этого функции и действительно там все просто...

я делаю на MQL4 ... нужно сделать все как можно проще.

Полистал стандартную библиотеку - посмотрите в сторону CSortedSet и его метода ExceptWith, может поможет.

https://www.mql5.com/ru/docs/standardlibrary/generic/csortedset/csortedsetexceptwith

 
Sergey Dzyublik:

Полистал стандартную библиотеку - посмотрите в сторону CSortedSet и его метода ExceptWith, может поможет.

https://www.mql5.com/ru/docs/standardlibrary/generic/csortedset/csortedsetexceptwith

Спасибо большое !

Было решено намного проще 
   char array1[]={"1", "2", "3", "4", "5", "6", "7"};
   char array2[]={"1", "2", "3", "4", "5"};

   for(int a=0; a<ArraySize(array1); a++){
      string items = array1[a];
     
      int rez = ArrayBsearch(array2,items,WHOLE_ARRAY,0,MODE_ASCEND);  
      if(array2[rez]==items) {
         Print("ТАКОЕ ЗНАЧЕНИЕ ЕСТЬ в массиве: ", items);
      } else {
         Print("НЕТ ТАКОГО ЗНАЧЕНИЯ в массиве: ", items);
      }
   }
 

Нет сообщения об ошибке

typedef void (*fn)( void * );
void f1 ( void * ) {}
class A {};
void OnStart()
{
        fn f2 = f1;
        const A *a;
//      f1( a ); //Error: 'a' - cannot convert from const pointer to nonconst pointer
        f2( a ); //нет сообщения об ошибке ???
}

при том что нарушена константность

 

такой вопрос:

как узнать во сколько закрываются торги по символу форекс?

Причина обращения: