Это рекурсия просто. Быстрая сортировка как раз таки и применяет рекурсивный вызов функции. О принципах, преимуществах и недостатках ее использования можете почитать в интернете. И да, это применительно к любому ЯП. В кратце скажу, что главное требование рекурсии - это то, что бы последующий вызов рекурсии приближал алгоритм к завершению. Ну и главный недостаток это требование к оперативной памяти при большое обработке данных, так как каждый вызов такой рекурсии будет блокировать память.... Простой пример с рекурсией на том же си и нахождению факториала в 2 вариациях.
1) Рекурсия внутри 1 функции:
longlong Factorial(int n){
if(n == 1) return1;
return n * Factorial(n-1); // Здесь выполнил требование приближение рекурсии к завершению(то есть n стремится к 1(где исполнится условие выше))
}
2) Рекурсия между несколькими функциями:
int Fun2(int); // Прототип.int Fun1(int i){
if(i == -5){return i;}
return i + Fun2(i-1);
}
int Fun2(int i){
if(i == -5){return i;}
return i + Fun1(i-1);
}
指向一块大小为4或8字节的数据的指针。
如果你使用类似pragma pack 1的东西,大小将是一样的(可能是1个字节)。
我有时也会在VS C++中,在asm列表模式下进行编译,然后再看,很多东西都变得清晰了。是的,这听起来很可怕,但asm是最后手段中的绝对真理。而且语言并不难懂。很难写得正确))。
是的,谢谢你......正如他们所说,我知道但忘记了,因为我不是一个程序员,很少做这个:)
我想把这个源代码移植到MQL,但我不确定是否能处理std::deque。
摘自这里:https://habr.com/ru/sandbox/43916/
SZZY:在谷歌上搜索,没有找到任何其他汉明的源代码,欢迎提供其他来源的链接(不是霍普菲尔德网络!!!--谷歌总是把它们放在一起给出)。
我想把这个源代码移植到MQL,但我不确定是否能处理std::deque。
这是一个双向的列表。上面的代码只有push_back,所以有可能你可以用一个向量来代替它。
如果没有,你可以通过数组做一个简单的deque的实现,在STL中它是以某种方式实现的。
这是一个双向的列表。在上面的代码中,只有push_back,所以有可能被一个向量所取代。
如果没有,你可以通过数组做一个简单的deque的实现,有开始和结束的冗余。
我在谷歌上搜索了std::deque,它就像你写的那样,但是...我不知道如何使用它,只是用一个矢量来代替它...总的来说,这个例子是一个教程,我不想把它搞乱,并确定它的工作方式是错误的))))。
ZS:在F#中也有一个例子--但我认为它太多了;)
我想把这个源代码移植到MQL,但我不确定是否能处理std::Alert( n.recognitionImage( a1_3 ) )。
摘自这里:https://habr.com/ru/sandbox/43916/
HZZ:在谷歌上搜索,我没有找到关于飞行的其他汉明网络来源,也欢迎链接到其他来源(它不是净的霍普菲尔德!!!--谷歌总是把它们放在一起给出。)
Igor,我不认为写一个deque是合理的,在绝大多数情况下,一个向量就足够了。我重写了你的例子,使用了关于stl的主题中的一个矢量。
我不想搞砸,并确定它应该工作不正常))))。
为了检查这一点,我测试了源代码和µl代码
在这两种情况下都得到:1 1 0 4294967295
HH:顺便说一下,来源中似乎有一个错误--超出了数组边界(该同志忘了加-1)。
Igor,我不认为写一个deque是合理的,在绝大多数情况下,一个向量就足够了。我从关于stl的主题中用矢量重写了你的例子。
为了检查它,我在pluses源码和µl代码上运行,例如
在这两种情况下都得到:1 1 0 4294967295
HH:顺便说一下,在源代码中似乎有一个错误--数组超限(该同志忘了加-1)。
О!太快了!谢谢HUMAN!!!。