if (Count == WHOLE_ARRAY) \
Count = ::ArraySize(Array) - Start;
Gelb hat die fehlenden Dinge hervorgehoben, und es scheint mir, dass es in der Reihenfolge der Argumente besser ist, mit Start und dann Count zu beginnen.
Übrigens ist es wahrscheinlich sinnvoller, Arrays von Strukturen nach Indizes zu sortieren (ich meine die Neuordnung der Indizes, nicht der Strukturen selbst), aber das hängt natürlich von der Größe der Struktur ab.
Übrigens wäre es wahrscheinlich sinnvoller, Arrays von Strukturen nach Indizes zu sortieren (ich meine die Umordnung der Indizes, nicht der Strukturen selbst).
Das war das erste, was mir in den Sinn kam, aber ich habe es aufgegeben. Denn es erfordert die Verwendung von ArrayCopy des ursprünglichen Arrays und des Arrays der Indizes. Und das ist ein zusätzlicher Speicher. Und die Maschine kann sich eine solche Sortierung eines Arrays von z.B. Millionen von MqlTick-Elementen nicht leisten.
Wir hätten zwei Sortiervarianten einbauen können, aber das habe ich im Quellcode nicht getan. Bei der Demonstration sind vielleicht die Benutzerfreundlichkeit und die Art der Umsetzung am wichtigsten. Nach dem Studium ist es bereits klar, wie Sie Ihre Bedürfnisse ergänzen und ein Analogon für andere Funktionen von Arrays mit Strukturen (ArrayMaximum, etc.) erstellen können.
Wie kann man diesen Code in eine einfache Klasse umwandeln, ohne #define zu verwenden?
Das können Sie nicht. ArraySortStruct soll als Funktion verwendet werden, ohne dass man sich damit beschäftigt, wie sie organisiert ist.
Werfen Sie einfach ein paar enludniks in den Quellcode und vergessen Sie es. Danach ist eine wirklich praktische "Funktion" für jeden Anfänger (und nicht nur für ihn) immer zur Hand.
Folks, werfen in einem Verweis, wenn es eine solche, brauchen die Flagge der Zeit der Eröffnung des Abends (zusätzliche) Handelssitzung auf FORTS MOEX, und wie alle sah durch, aber nicht finden, wollen nicht eine Krücke Definition um 19:00 oder 19:05 Uhr zu schreiben wird Handelssitzung öffnen
Komplexität ist eine detaillierte Erklärung der Einfachheit. ))
Sie sind sehr rücksichtsvoll, vielen Dank. Ich habe einen Fehler gemacht, ich habe keine Klammern gesetzt, also würde ich die Funktion "unfair" verwenden.
Anmeldung
Ergebnis
Praktisches Sortieren einer Reihe von Strukturen
Gelb hat die fehlenden Dinge hervorgehoben, und es scheint mir, dass es in der Reihenfolge der Argumente besser ist, mit Start und dann Count zu beginnen.
Übrigens ist es wahrscheinlich sinnvoller, Arrays von Strukturen nach Indizes zu sortieren (ich meine die Neuordnung der Indizes, nicht der Strukturen selbst), aber das hängt natürlich von der Größe der Struktur ab.
Ich habe das, was fehlte, gelb hervorgehoben.
Danke, ich habe es übersehen.
Ich denke, es ist besser, mit Start und dann Count in der Reihenfolge der Argumente zu beginnen.
Das Signal ist dem MT4-ArraySort entlehnt.
Übrigens wäre es wahrscheinlich sinnvoller, Arrays von Strukturen nach Indizes zu sortieren (ich meine die Umordnung der Indizes, nicht der Strukturen selbst).
Das war das erste, was mir in den Sinn kam, aber ich habe es aufgegeben. Denn es erfordert die Verwendung von ArrayCopy des ursprünglichen Arrays und des Arrays der Indizes. Und das ist ein zusätzlicher Speicher. Und die Maschine kann sich eine solche Sortierung eines Arrays von z.B. Millionen von MqlTick-Elementen nicht leisten.
Wir hätten zwei Sortiervarianten einbauen können, aber das habe ich im Quellcode nicht getan. Bei der Demonstration sind vielleicht die Benutzerfreundlichkeit und die Art der Umsetzung am wichtigsten. Nach dem Studium ist es bereits klar, wie Sie Ihre Bedürfnisse ergänzen und ein Analogon für andere Funktionen von Arrays mit Strukturen (ArrayMaximum, etc.) erstellen können.
Praktisches Sortieren einer Reihe von Strukturen
Anmeldung
Ergebnis
Wie kann man diesen Code in eine einfache Klasse umwandeln, ohne #define zu verwenden?
Wie kann man diesen Code in eine einfache Klasse umwandeln, ohne #define zu verwenden?
Das können Sie nicht. ArraySortStruct soll als Funktion verwendet werden, ohne dass man sich damit beschäftigt, wie sie organisiert ist.
Werfen Sie einfach ein paar enludniks in den Quellcode und vergessen Sie es. Danach ist eine wirklich praktische "Funktion" für jeden Anfänger (und nicht nur für ihn) immer zur Hand.
Eine Zufallszahl von 0 bis max mit gleicher Wahrscheinlichkeit:
Der Multi-Buffer ist großartig, um den Editor zu beschleunigen und ist sicher.
Es schreibt nichts auf die Festplatte und behält die Daten nur im Speicher.
Eine Zufallszahl von 0 bis max mit gleicher Wahrscheinlichkeit:
Ihre Funktion ist zu 100 % gleichwertig:
weil erstens.
vereinfacht zu
daher, zweitens
wird immer nur einmal durchgeführt.
Komplexität ist eine detaillierte Erklärung der Einfachheit. ))
Ihre Funktion ist zu 100 % gleichwertig:
weil erstens.
vereinfacht zu
daher, zweitens
wird immer nur einmal durchgeführt.
Komplexität ist eine detaillierte Erklärung der Einfachheit. ))
Sie sind sehr rücksichtsvoll, vielen Dank. Ich habe einen Fehler gemacht, ich habe keine Klammern gesetzt, also würde ich die Funktion "unfair" verwenden.
SZZ: hat den ursprünglichen Beitrag korrigiert.