[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 436

 

有一个ArrayTemp[100],其中所有的元素都是整数类型,并按从1到100的升序排序。

我需要删除前1-50个元素,并将数组大小 减少到[50]。

我想做的是把阵列的后半部分复制到临时,调整原件的大小,然后再复制回来,从临时到原件。

- 是否有更简单的方法?

谢谢!

[删除]  
chief2000:

有一个ArrayTemp[100],其中所有的元素都是整数类型,并按从1到100的升序排序。

我需要删除前1-50个元素,并将数组大小减少到[50]。

我想做的是把阵列的后半部分复制到临时,调整原件的大小,然后再复制回来,从临时到原件。

- 是否有更简单的方法?

谢谢!



你可以按降序排序,然后简单地调整数组的大小。我认为那会更快。但谁知道呢?)
 
Figar0:

你可以按降序排序,然后再调整数组的大小即可。我认为那会更快。但谁知道呢?)

谢谢你!

[删除]  
Vinin:

好的第一步,奥尔加-亚历山德罗夫娜。330行代码


日安!我不知道如何判断它--是赞美还是反之,但无论如何,感谢你的回答。

我找不到解决方案,不幸的是,这就是为什么我这么认为--主要是质量和素养,有了它,据我所知,我有一个缺口,因为代码不走。

非常期待对我的问题的答复.....

 

善良的人帮助谁可以

这里是代码,在时间到期后,权证应被删除,这是条件。

MyCurrentTime >= OrderExpiriation && OrderMagicNumber() == MagicNumber

为什么如果我在第一个if运算符中插入这个条件,那么它里面的其他运算符就不考虑这个条件呢?

也就是说,这段代码不起作用,一下子就把所有的挂单 删除了。

  for(int counter=0;counter<OrdersTotal();counter++)
    {
    if(OrderSelect(counter,SELECT_BY_POS,MODE_TRADES) == false) break;

    if(MyCurrentTime >= OrderExpiriation && OrderMagicNumber() == MagicNumber) //Если текущее время больше чем время истечения
      {
        
        
      if(OrderType() == OP_BUYLIMIT || OrderType() == OP_SELLLIMIT || OrderType() == OP_BUYSTOP || OrderType() == OP_SELLSTOP)
        {
        OrderDelete(OrderTicket());
        }
        
      }
    }

而且这段代码是有效的,不会一次性删除订单。

  for(int counter=0;counter<OrdersTotal();counter++)
    {
    if(OrderSelect(counter,SELECT_BY_POS,MODE_TRADES) == false) break;

    if(MyCurrentTime >= OrderExpiriation && OrderMagicNumber() == MagicNumber) //Если текущее время больше чем время истечения
      {
        
        
      if(OrderType() == OP_BUYLIMIT || OrderType() == OP_SELLLIMIT || OrderType() == OP_BUYSTOP || OrderType() == OP_SELLSTOP && MyCurrentTime >= OrderExpiriation && OrderMagicNumber() == MagicNumber)
        {
        OrderDelete(OrderTicket());
        }
        
      }
    }
 

你能告诉我断点是用来做什么的吗?我在论坛上搜索了一下,但找不到任何信息。我如何使用它?

 
chief2000:

有一个ArrayTemp[100],其中所有的元素都是整数类型,并按从1到100的升序排序。

我需要删除前1-50个元素,并将数组大小减少到[50]。

我想做的是把阵列的后半部分复制到临时,调整原件的大小,然后再复制回来,从临时到原件。

你可以什么都不做,把第50个元素看作是起始元素。反正ArrayCopy 会花费一些时间。
 
sss2019:

善良的人帮助谁可以

这里是代码,在时间到期后,权证应被删除,这是条件。

为什么如果我在第一个if运算符中插入这个条件,那么它里面的其他运算符就不考虑这个条件呢?

也就是说,这段代码不起作用,一下子就把所有的挂单删除了。

而且这段代码是有效的,不会一次性删除订单。

一般来说,从最后一个订单开始看,是一个好主意。在第二种情况下,不要害怕在条件中添加括号

 
fore-x:

你能告诉我断点是用来做什么的吗?我在论坛上搜索了一下,但找不到任何信息。我如何使用它?

它不起作用。我以为它能成为一个合适的调试器,但它并没有。
 
splxgf:
你可以什么都不做,把第50个元素视为初始元素。ArrayCopy在任何情况下都会花费一些时间。

重点是,数组必须定期包括更多的元素(扩展),这影响了优化/测试的速度。因此,在 "有利 "的时候,我把它恢复到初始状态。

Figar0的 解决方案 结果是比我的更简单,而且运行良好。

谢谢你!