新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 937

 

我想创建一个一维数组,其中0到4的元素将存储双数,5到9将存储数据名,10到14将存储int。有可能在mql4中组织吗? 如果可以,你能告诉我怎么做吗? 我在C++中看到一个结构的例子,但我失去了网站的链接?

 
Seric29:

我想创建一个一维数组,其中0到4的元素将存储双数,5到9将存储数据名,10到14将存储int。有可能在mql4中组织吗? 如果可以,你能告诉我怎么做吗? 我在C++中看到过一个有结构的例子,但我已经失去了网站的链接。

一个数组只能有一种类型。

但谁禁止拥有一个最大数据类型 的数组类型呢?在这种情况下,它是双倍的。

 
Artyom Trishkin:

一个数组只能有一种类型。

但是,谁禁止拥有一个具有最大数据类型 的数组类型?在这种情况下--双倍。

我需要名字相同,否则我就得做左边的检查。难道我不能用一个结构来声明其中的变量,然后把它们组合成一个数组吗?你就不能把一个工会的操作员塞进去吗?

 
Seric29:

我需要名字相同,否则我就得做左边的检查。难道我不能通过一个结构,在其中声明变量,然后将它们组合成一个数组来做吗?你不能用胶水粘住工会的操作员吗?

什么的名字?

 
Artyom Trishkin:

什么的名字?

阵列名称。按照我的理解,这是不可能的,即使你做了一个结构,你也要用一个点,把信息结合在一个名字里,也许我看错了,我已经失去了链接。

 
Seric29:

阵列名称。我明白,即使你做了一个结构,你也要用一个点,把信息结合在一个名字里,也许我看错了,很抱歉我失去了链接。

为什么我们要为一个数组起不同的名字?你怎么能想象呢?

所以,你有一个数组来存储各种数字类型(当然,除了字符串)。数组的类型必须等于写进它的最大数据类型。因此,用不同的类型来填充它。当你得到它们时,要注意索引,你已经知道了,这样,具有正确类型的正确变量就能从数组的不同单元中获得数值。

从0到4的元素将被存储为双数,从5到9将被存储为数据名,从10到14将被存储为int

double array[15];
array[0]=0.0; array[1]=0.1; array[2]=0.2; array[3]=0.3; array[4]=0.4;
array[5]=(datetime)5; array[6]=(datetime)6; array[7]=(datetime)7; array[8]=(datetime)8; array[9]=(datetime)9;
array[10]=(int)10; array[11]=(int)11; array[12]=(int)12; array[13]=(int)13; array[14]=(int)14;
一个名称:阵列
 
Artyom Trishkin:

为什么为同一个数组起不同的名字?你怎么能想象呢?

所以,你有一个数组来存储不同的数字类型(当然,字符串除外)。数组的类型必须等于写进它的最大数据类型。因此,用不同的类型来填充它。当你得到它们时,要注意索引,你已经知道了,这样,具有正确类型的正确变量就能从数组的不同单元中获得数值。

名称是一样的:数组

所以他们将存储不同的数据。

 
Seric29:

这就是不同的数据将被储存在其中的方式。

什么是 "在他们身上"?

 
Seric29:

我看到一个有结构的例子,但它是在C++中,但我失去了网站的链接?

如果你的例子中没有指针,那么将其移植到MQL就没有问题了。

塞里奇29

你不能把工会操作员粘在箱子上吗?

union不是一个运算符!它是一个类型!它被描述为一个结构,但它是用来在一个内存空间中存储不同类型的数据的https://www.mql5.com/ru/docs/basis/types/classes#union


塞里奇29

我想解决这个问题,把一个数组传给宏,在宏中调用重载函数,并返回结果。 这似乎很原始,但当我在宏中调用重载函数时,它警告说有3个函数,所以我必须在宏中写一个标准,以确定调用哪个重载函数,但我又要问如何检查这个,总之,想法是迷茫的。

至少要开始读一本关于C++的书,你的问题很爆炸,你写的是技术术语,乍一看似乎是在问一个具体的问题,但实际上你只是在术语上操作,没有理解本质....,宏会返回什么?会在哪里返回?在宏体可重载函数中....。我甚至无法解释你的问题是什么样子的。

要了解什么是宏,请正确地拼写术语,即macroSUMMARY,也许你会更容易理解它是什么。

 
Seric29:

它应该像这样工作。

一般来说,我想达到这种效果,但我在班级方面没有经验。这段代码编译后可以使用。

这很好。

原因: