void ReverseEnumerateAll(CList& list)
{
CObject* node = list.GetLastNode();
for(int i = list.Total()-1; node != NULL; i--, node = node.Prev())
printf("Element at " + (string)i);
}
Как работает этот код? На самом деле все просто. В функции EnumerateAll() в самом начале мы получаем ссылку на первый узел. Затем в цикле for мы печатаем порядковый узел этого узла
и переходим к следующему узлу командой node = node.Next(), не забывая при этом проитерировать текущий индекс элемента на единицу (i++). Перебор продолжается до тех пор, пока текущий
узел node не станет равен NULL, за это ответствен код во втором блоке for: node != NULL.
Аналогично работает реверсивная версия этой функции ReverseEnumerateAll() с той лишь разницей, что она вначале получает последний элемент списка CObject* node = list.GetLastNode().
В цикле for она получает не следующий, а предыдущий элемент списка node = node.Prev().
显然,你指的不是继承,而是从一个类在一个结构上的包装器?
为什么标志位被切断了?
为什么标志位被切断了?
哈希值必须是正数,因为它是数组中的一个索引。
哈希值必须是正数,因为它是数组中的一个索引。
uint?
uint?
说不通
说不通
高亮线的组合似乎不对
关于交易、自动交易系统和交易策略测试的论坛
通用类库 - 错误、描述、问题、用例和建议
fxsaber, 2018.06.11 20:04
你如何比较修剪过的哈希和未修剪的哈希?
你如何比较修剪过的哈希和未修剪的哈希?
我认为它们都被截断了,尽管我应该马上说,我只是简单地看了一下代码,而且是很久以前,所以我可能是错的。
看一下添加项目的代码。
我认为它们都是修剪过的,尽管我应该直接说,我只是在很久以前瞥见了代码,所以我可能是错的。
看一下代码,添加一个项目。
是的,谢谢,只是没有任何不在代码中修剪的。奇怪的是,他们没有在HashCode方法本身进行修剪。显然,计算是为了防骗(歪曲的自定义哈希值)。
如果这已经发生了,请原谅。在文档中找不到。
在Set-ups上是否有任何循环? 迭代器?
如果这已经发生了,请原谅。在文档中找不到。
是否有任何关于设置的循环?
不幸的是,没有。
但你可以自己实现它。
例如,请看文章MQL5 RECEIPTS - 实现关联的大型数据库或世界数据库,以实现快速的数据访问。