А что? Еще один паттерн. Вот только что-то адепты паттернов его не признали, видимо не православный, не канонический. Почему не реккурсия? Тоже реккурсия, только не вдоль, а поперек.
Игорь просто сетовал, что у него получается два цикла и чуда не получится впихнуть в один цикл. Вот и вспомнился этот сайт с примером, может получится вообще без циклов обойтись. И чудо случится )) Вот и предложил вариант, на подумать )) может впихнется без циклов. А то что кому то, что то не по религии, это дело каждого.
Игорь просто сетовал, что у него получается два цикла и чуда не получится впихнуть в один цикл.
не сетовал, а выведывал секреты у программистов :)
у меня получается, могу цикл и рекурсией обернуть (заменить), был бы толк :)
Roman:
А то что кому то, что то не по религии, это дело каждого.
дело не в религии, а в понимании, что есть устоявшиеся приемы программирования, и если эти приемы использует большинство, то значит это эффективно - эффективно по скорости, эффективно по читаемости кода, эффективно по дальнейшей поддержке, эффективно по повторному использованию...
а религия? имхо, ноу-хау в программировании, обычно это не владение материалом (или информацией) и затем распространение этих "граблей" как собственное новаторство
не сетовал, а выведывал секреты у программистов :)
у меня получается, могу цикл и рекурсией обернуть (заменить), был бы толк :)
дело не в религии, а в понимании, что есть устоявшиеся приемы программирования, и если эти приемы использует большинство, то значит это эффективно - эффективно по скорости, эффективно по читаемости кода, эффективно по дальнейшей поддержке, эффективно по повторному использованию...
а религия? имхо, ноу-хау в программировании, обычно это не владение материалом (или информацией) и затем распространение этих "граблей" как собственное новаторство
В одном из примеров упоминается, что пример использует шаблон метапрограммирования. Используя шаблоны, можно писать программы, которые выполняют вычисления во время компиляции, если конечно это подходит для задачи. Такие программы называются шаблонными метапрограммами. Не спроста терминал называется MetaTrader. ;))
не сетовал, а выведывал секреты у программистов :)
у меня получается, могу цикл и рекурсией обернуть (заменить), был бы толк :)
дело не в религии, а в понимании, что есть устоявшиеся приемы программирования, и если эти приемы использует большинство, то значит это эффективно - эффективно по скорости, эффективно по читаемости кода, эффективно по дальнейшей поддержке, эффективно по повторному использованию...
а религия? имхо, ноу-хау в программировании, обычно это не владение материалом (или информацией) и затем распространение этих "граблей" как собственное новаторство
Игорь, не удержался с утра и нарисовал на коленке вызов любых методов без циклов. Ну вдруг действительно пригодится. *Осторожно, использована СБ :))
#include <Arrays\List.mqh>
//+------------------------------------------------------------------+class base : public CObject
{
public:
virtualvoid HighPriorityTask() {}
virtualvoid Task() {}
};
//+------------------------------------------------------------------+class A: public base
{
private:
static A*lastnode;
static A*rootnode;
staticint ID_counter;
public:
int ID;
A()
{
Prev((CObject*)lastnode);
A*self = GetPointer(this);
if(lastnode)
lastnode.Next(self);
lastnode=self;
if(rootnode==NULL)
rootnode=self;
ID=ID_counter++;
}
static A* GetRoot() {return rootnode;}
virtualvoid HighPriorityTask() { Print(__FUNCSIG__," ID=",ID); A* next=(A*)Next(); if(next!=NULL) next.HighPriorityTask(); }
};
A* A::rootnode=NULL;
A* A::lastnode=NULL;
int A::ID_counter=0;
//+------------------------------------------------------------------+class B: public base
{
public:
virtualvoid Task() { Print(__FUNCSIG__); }
};
//+------------------------------------------------------------------+voidOnStart()
{
base *obj[4];;
obj[0] = new A;
obj[1] = new A;
obj[2] = new B;
obj[3] = new B;
A* arr[5];
for(int i=0; i<5; i++)
{
arr[i]= new A();
}
if(A::GetRoot()!=NULL)
A::GetRoot().HighPriorityTask();for(int i=ArraySize(obj)-1; i>=0; i--)
{
//obj[i].HighPriorityTask();
obj[i].Task();
}
for(int i=ArraySize(obj)-1; i>=0; i--)
delete obj[i];
for(int i=0; i<5; i++)
{
delete arr[i];
}
}
//+------------------------------------------------------------------+
А что? Еще один паттерн. Вот только что-то адепты паттернов его не признали, видимо не православный, не канонический. Почему не реккурсия? Тоже реккурсия, только не вдоль, а поперек.
это называется "развёртываение цикла" и без всякого OO и шаблонов делается компилятором (по крайней мере должно).
Если заглянуть в промежуточный код (в ассемблер), то будут просто подряд N операций вместо цикла.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
А что? Еще один паттерн. Вот только что-то адепты паттернов его не признали, видимо не православный, не канонический. Почему не реккурсия? Тоже реккурсия, только не вдоль, а поперек.
Игорь просто сетовал, что у него получается два цикла и чуда не получится впихнуть в один цикл.
Вот и вспомнился этот сайт с примером, может получится вообще без циклов обойтись. И чудо случится ))
Вот и предложил вариант, на подумать )) может впихнется без циклов.
А то что кому то, что то не по религии, это дело каждого.
Игорь просто сетовал, что у него получается два цикла и чуда не получится впихнуть в один цикл.
не сетовал, а выведывал секреты у программистов :)
у меня получается, могу цикл и рекурсией обернуть (заменить), был бы толк :)
А то что кому то, что то не по религии, это дело каждого.
дело не в религии, а в понимании, что есть устоявшиеся приемы программирования, и если эти приемы использует большинство, то значит это эффективно - эффективно по скорости, эффективно по читаемости кода, эффективно по дальнейшей поддержке, эффективно по повторному использованию...
а религия? имхо, ноу-хау в программировании, обычно это не владение материалом (или информацией) и затем распространение этих "граблей" как собственное новаторство
не сетовал, а выведывал секреты у программистов :)
у меня получается, могу цикл и рекурсией обернуть (заменить), был бы толк :)
дело не в религии, а в понимании, что есть устоявшиеся приемы программирования, и если эти приемы использует большинство, то значит это эффективно - эффективно по скорости, эффективно по читаемости кода, эффективно по дальнейшей поддержке, эффективно по повторному использованию...
а религия? имхо, ноу-хау в программировании, обычно это не владение материалом (или информацией) и затем распространение этих "граблей" как собственное новаторство
В одном из примеров упоминается, что пример использует шаблон метапрограммирования.
Используя шаблоны, можно писать программы, которые выполняют вычисления во время компиляции, если конечно это подходит для задачи.
Такие программы называются шаблонными метапрограммами.
Не спроста терминал называется MetaTrader.
;))
не сетовал, а выведывал секреты у программистов :)
у меня получается, могу цикл и рекурсией обернуть (заменить), был бы толк :)
дело не в религии, а в понимании, что есть устоявшиеся приемы программирования, и если эти приемы использует большинство, то значит это эффективно - эффективно по скорости, эффективно по читаемости кода, эффективно по дальнейшей поддержке, эффективно по повторному использованию...
а религия? имхо, ноу-хау в программировании, обычно это не владение материалом (или информацией) и затем распространение этих "граблей" как собственное новаторство
Игорь, не удержался с утра и нарисовал на коленке вызов любых методов без циклов. Ну вдруг действительно пригодится. *Осторожно, использована СБ :))
А что? Еще один паттерн. Вот только что-то адепты паттернов его не признали, видимо не православный, не канонический. Почему не реккурсия? Тоже реккурсия, только не вдоль, а поперек.
это называется "развёртываение цикла" и без всякого OO и шаблонов делается компилятором (по крайней мере должно).
Если заглянуть в промежуточный код (в ассемблер), то будут просто подряд N операций вместо цикла.
Получил неожиданный результат.
Размеры структур какие через sizeof, а то я не у компа?
Чем больше размер простой структуры, тем медленнее с ней работа.
Чем больше размер простой структуры, тем медленнее с ней работа.
сделайте первую структуру {int;int;double[2]}