Löschen eines Arrays mit definierten Element(en) - Seite 6

 
TheXpert:
Eine hat 42 Produkte, eine hat 6, eine hat 30. Ich habe Angst, mir vorzustellen, was für ein Arschloch in ihm steckt, wenn er solche Fragen stellt und solche Antworten gibt.
+1000500
 
Реter Konow:

Entschuldigung. Es sieht so aus, als müssten die Linien umgedreht werden:

Haben Sie es mit einem Lauf versucht? Auch ohne einen Durchlauf kann man feststellen, dass es kein Problem ist, beim Kopieren aus der Anordnung herauszukommen.

if(deleted)Arr[a1] = Arr[a1 + deleted];
 
Sergey Chalyshev:
+1000500

Der Zirkus ist bereits abgereist.

 
Dmitry Fedoseev:

Wir müssen die Grundlagen richtig machen.

Dies ist der wichtigste Punkt,

Sie brauchen den richtigen (Strategie-)Ansatz, um das Problem zu lösen.

 
Dmitry Fedoseev:

Der Zirkus ist bereits abgereist.

Wohin gegangen? Wie ein Zirkus?

Ich glaube nicht, dass er irgendwo hingeht, und wenn doch, dann nicht für lange und er wird sicher zurückkommen).

 
Konstantin Nikitin:

Haben Sie es mit einem Lauf versucht? Auch ohne einen Durchlauf können Sie feststellen, dass es kein Problem sein wird, beim Kopieren aus dem Array herauszukommen.

Nur eine Sekunde. Ich überprüfe meine Lösung. Ich habe nur aufgeschrieben, was mir in den Sinn kam. Ich werde es mir ansehen.

 
//+------------------------------------------------------------------+
//|                                             Erase and Resize.mq5 |
//|                                                      Peter Konow |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Peter Konow"
#property link      "https://www.mql5.com"
#property version   "1.00"
//--------------------------------------------------------------------
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   int Arr[20] = {1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2};
   ulong q1 = GetMicrosecondCount(); 
   //--------------------------------
   int deleted = 0,q = 0;
   //-------------- 
   for(int a1 = 0; a1 < ArraySize(Arr); a1++)
     {
      if(deleted)Arr[q] = Arr[q + deleted];
      if(Arr[q] == 3){deleted++; q--;}
      q++;
     }
   //--------------
   ulong q2 = GetMicrosecondCount(); 
   //--------------------------------
   //ArrayResize(Arr, ArraySize(Arr) - deleted);    
   //--------------------------------
   Print(Arr[0],",",Arr[1],",",Arr[2],",",Arr[3],",",Arr[4],",",Arr[5],",",Arr[6],",",Arr[7],",",Arr[8],",",Arr[9],
        ",",Arr[10],",",Arr[11],",",Arr[12],",",Arr[13],",",Arr[14],",",Arr[15],",",Arr[16],",",Arr[17],",",Arr[18],",",Arr[19]);
   Print("Array new size  ",ArraySize(Arr),"  Тime of operation  ",q2-q1,"  deleted  ",deleted);
   //--------------------------------  
  }
//+------------------------------------------------------------------+
2018.11.13 13:49:15.813 Erase and Resize (USDJPY,H1)    Array new size  20  Тime of operation  1  deleted  6
2018.11.13 13:49:15.813 Erase and Resize (USDJPY,H1)    1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,1,2,3,1,2  <--------------последние шесть цифр остались неизмененными, потому что не сделал АrrayResize;
Discover new MetaTrader 5 opportunities with MQL5 community and services
Discover new MetaTrader 5 opportunities with MQL5 community and services
  • www.mql5.com
Ask questions on technical analysis, discuss trading systems and improve your MQL5 programming skills to develop your own trading strategies. Communicate and share your experience with traders from anywhere in the world, answer questions and help beginners — MQL5.community is developing along with you. How to avoid opening of new order Hello...
 

Die Lösung entfernt alle Tripel, aber nicht die Ziffern am Ende, da diese Ziffern bei ArrayResize verschwinden sollten.

Mit anderen Worten, die letzten Ziffern sind diejenigen, die nicht Teil des geänderten Arrays sind. Ich habe einfach keinArrayResize gemacht

 
Реter Konow:

Was gibt es da zu besprechen?

Print(Arr[0],",",Arr[1],",",Arr[2],",",Arr[3],",",Arr[4],",",Arr[5],",",Arr[6],",",Arr[7],",",Arr[8],",",Arr[9],
        ",",Arr[10],",",Arr[11],",",Arr[12],",",Arr[13],",",Arr[14],",",Arr[15],",",Arr[16],",",Arr[17],",",Arr[18],",",Arr[19]);
Vielleicht ist es sogar noch raffinierter, das Forum mit Scheiße zu beschmieren.
 
Sergey Dzyublik:

Was gibt es da zu besprechen?

Vielleicht, wie es noch raffinierter wäre, das Forum mit Scheiße zu beschmieren.

Haben Sie eine schnellere Lösung?

Mann, wie ich es liebe, Leute niederzumachen, die auf die Form und nicht auf den Inhalt fixiert sind. Es ist mir ein Vergnügen.)