CSortedMap with Structure TValue Error - objects are passed by reference only?

Tiroler63  

Hi,

what's going wrong here?

struct ownType {
   int a;
};

CSortedMap<double, ownType> ownObject;

=> Error: 'ownType' - objects are passed by reference only HashMap.mqh


Thanks...

Carl Schreiber  
Tiroler63:

Hi,

what's going wrong here?

=> Error: 'ownType' - objects are passed by reference only HashMap.mqh


Thanks...

  1. Wir können hier deutsch reden :)
  2. Was willst Du mit: CSortedMap<string, ownType> ownObject; ???
  3. logisch wäre:
    struct ownType {
       int a;
    };
    ownType myVarOwnTyp;

Tiroler63  
Carl Schreiber #:
  1. Wir können hier deutsch reden :)
  2. Was willst Du mit: CSortedMap<double, ownType> ownObject; ???
  3. logisch wäre:


Hi Carl,

ich brauche eine sortierte Liste mit einem eigenen Structure Type. So wie in C++ map<double, ownType>.

Carl Schreiber  
Tiroler63 #:

Hi Carl,

ich brauche eine sortierte Liste mit einem eigenen Structure Type. So wie in C++ map<double, ownType>.

Da musst Du Dir die Sortierfunktion selber schreiben. MQL5 bietet nur das Sortieren von Arrays (jeden Typs): https://www.mql5.com/de/docs/array/arraysort:&nbsp; "Sortiert ein mehrdimensionales Array aufsteigend in der ersten Dimension."

Dann also

struct ownType {
   int a;
};
ownType myVarOwnTyp[];

So kriegst Du einen Array Deiner Struktur. Zugriff sieht so aus:

myVarOwnTyp[i].a
Documentation on MQL5: Array Functions / ArraySort
Documentation on MQL5: Array Functions / ArraySort
  • www.mql5.com
ArraySort - Array Functions - MQL5 Reference - Reference on algorithmic/automated trading language for MetaTrader 5
Tiroler63  
Carl Schreiber #:

Da musst Du Dir die Sortierfunktion selber schreiben. MQL5 bietet nur das Sortieren von Arrays (jeden Typs): https://www.mql5.com/de/docs/array/arraysort:&nbsp; "Sortiert ein mehrdimensionales Array aufsteigend in der ersten Dimension."

Dann also

So kriegst Du einen Array Deiner Struktur. Zugriff sieht so aus:

Danke!

1. arraysort glaub ich funktiniert doch nur mit Indizes also Integer, ich möchte aber nach Double oder Strings sortieren können.

2. CSortedMap<double, ownType> wäre optimal, ich verstehe nur nicht was ich falsch mache?

Tiroler63  
Carl Schreiber #:
Vielleicht meintest Du ja das (schaut aber auch anders aus): https://www.mql5.com/de/docs/basis/oop/templates

Ja danke, aber ich brauche eine Liste geordnet nach Doubles, so wie 

map<double, ownType>

Deshalb kam ich auf 

CSortedMap<double, ownType>

So wie es aussieht geht das aber nur mit einfachen Datentypen.

Schade...

Grund der Beschwerde: