Kann ich Brainstorming auf eine schnelle Implementierung der Übersetzung eines Arrays von Strukturen (Länge Vielfache von sizeof(int)) zu und von einem int[] Array?
///
Schreiben Sie einfach nach der Beschreibung einer Struktur ein paar weitere Zeilen mit einer Union, die diese Struktur und ein Array enthält.
struct SS{
int a;
double b;
};
union UX{
SS s;
char a[sizeof(S)];
};
Es ist sogar möglich, nicht nach jeder Struktur zu schreiben, sondern eine Schablone zu verwenden - je nachdem, was für Sie bequem ist.
Kann ich Brainstorming auf eine schnelle Implementierung zu konvertieren ein Array von Strukturen (Länge Vielfache von sizeof(int)) in und aus einem int[] Array?
Im Allgemeinen liegt die Lösung in der gleichen Verbindung, aber wegen der Vielseitigkeit gibt es dort eine Bremse. Vielfältigkeit ist also eine verständliche Zusatzbedingung.
MQL5: Die Eigenschaft pack( integer_value ) wurde für Strukturen hinzugefügt. Sie ermöglicht es Ihnen, die Ausrichtung der Felder innerhalb der Struktur festzulegen, was bei der Arbeit mit DLL notwendig sein kann. Denn integer_value kann die Werte 1, 2, 4, 8 und 16 haben. Wenn die Eigenschaft nicht definiert ist, ist die Standardausrichtung 1 Byte - pack(1).
Beispiel für die Verwendung:
//+------------------------------------------------------------------+//| Default packing |//+------------------------------------------------------------------+struct A
{
char a;
int b;
};
//+------------------------------------------------------------------+//| Specified packing |//+------------------------------------------------------------------+struct B pack(4)
{
char a;
int b;
};
//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
Print("sizeof(A)=",sizeof(A));
Print("sizeof(B)=",sizeof(B));
}
//+------------------------------------------------------------------+
Ausgabe:
sizeof(A)=5
sizeof(B)=8
Weitere Informationen zur Ausrichtung in Strukturen finden Sie auf MSDN.
Kann ich Brainstorming auf eine schnelle Implementierung der Übersetzung eines Arrays von Strukturen (Länge Vielfaches von sizeof(int)) zu und von int[] Array?
Warum zu int? und nicht zu char?
(und sie wird länger sein - sie wird schneller kopiert)
Im allgemeinen Fall liegt die Lösung in der gleichen Verbindung, aber wegen der Universalität gibt es Bremsen. Daher ist die Multiplizität eine verständliche Zusatzbedingung.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
Hier ist eine weitere interessante Aufgabe: eine Array-Sortierfunktion schneller zu machen als die eingebaute ArraySort.
Ist garantiert, dass die Größe aller Strukturen durch die Größe aller Variablen geteilt wird?
Kann ich Brainstorming auf eine schnelle Implementierung der Übersetzung eines Arrays von Strukturen (Länge Vielfache von sizeof(int)) zu und von einem int[] Array?
///
Schreiben Sie einfach nach der Beschreibung einer Struktur ein paar weitere Zeilen mit einer Union, die diese Struktur und ein Array enthält.
Es ist sogar möglich, nicht nach jeder Struktur zu schreiben, sondern eine Schablone zu verwenden - je nachdem, was für Sie bequem ist.
Ist die Größe aller Strukturen garantiert durch die Größe aller Variablen geteilt?
Forum für Handel, automatisierte Handelssysteme und Strategietests
Ermitteln der Anzahl der Dezimalstellen beliebiger Zahlen (nicht nur Anführungszeichen) unter Umgehung von Digits() in MQL4 und MQL5
fxsaber, 2018.12.07 15:12
Kann ich Brainstorming auf eine schnelle Implementierung zu konvertieren ein Array von Strukturen (Länge Vielfache von sizeof(int)) in und aus einem int[] Array?
Im Allgemeinen liegt die Lösung in der gleichen Verbindung, aber wegen der Vielseitigkeit gibt es dort eine Bremse. Vielfältigkeit ist also eine verständliche Zusatzbedingung.
Dies erschien auch.
Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests
Neue Version von MetaTrader 5 build 1930: Floating Chart Window und .Net Library in MQL5
MetaQuotes Software Corp., 2018.10.25 17:18
Wenn die Eigenschaft nicht definiert ist, ist die Standardausrichtung 1 Byte - pack(1).
Beispiel für die Verwendung:
Ausgabe:
Weitere Informationen zur Ausrichtung in Strukturen finden Sie auf MSDN.
Schreiben Sie einfach nach der Beschreibung der Struktur ein paar weitere Zeilen mit einer Union, die diese Struktur und das Array umfasst.
Sie können auch nicht nach jeder Struktur schreiben, sondern sie als Vorlage verwenden - was immer bequemer ist.
Das verstehe ich nicht. Wenn Sie teilnehmen möchten, schreiben Sie bitte Ihre Variante.
Kann ich Brainstorming auf eine schnelle Implementierung der Übersetzung eines Arrays von Strukturen (Länge Vielfaches von sizeof(int)) zu und von int[] Array?
Warum zu int? und nicht zu char?
(und sie wird länger sein - sie wird schneller kopiert)
Warum Int?
Forum für Handel, automatisierte Handelssysteme und Strategietests
Ermitteln der Anzahl der Dezimalstellen beliebiger Zahlen (nicht nur Anführungszeichen) unter Umgehung von Digits() in MQL4 und MQL5
fxsaber, 2018.12.07 15:12
Praktische Anwendung ist der schnelle Datenaustausch über Ressourcen. Meine Variante ist zu allgemein, deshalb ist sie langsam.
Offensichtlich ist Ihrer bereits schneller :)
Ich werde versuchen, das Ganze erheblich zu beschleunigen.
Das verstehe ich nicht. Wenn Sie teilnehmen möchten, geben Sie bitte Ihre Option an.
Das habe ich.
Im allgemeinen Fall liegt die Lösung in der gleichen Verbindung, aber wegen der Universalität gibt es Bremsen. Daher ist die Multiplizität eine verständliche Zusatzbedingung.
Dies erscheint auch.
Wer wird diese Vielfalt kontrollieren?