没人吗??!!
标准库中Arrays中就有string数组类,可能你不知道。
Ziheng Zhuang:
标准库中Arrays中就有string数组类,可能你不知道。
标准库中Arrays中就有string数组类,可能你不知道。
没有那么简单!我开始想到了一种使用 排序的方式,然后再次循环 去重复,最后写完提示 ArraySort 不支持 string 的数组
最后又不断的改写,使用 StringFind 的组合,循环查找,然后将找到重复值 标记为 null
再次循环,跳过标记为 null,填充新的数组最后才完成。。。
循环了三次
xiaokkangg CHEN:
没有那么简单!我开始想到了一种使用 排序的方式,然后再次循环 去重复,最后写完提示 ArraySort 不支持 string 的数组
最后又不断的改写,使用 StringFind 的组合,循环查找,然后将找到重复值 标记为 null
再次循环,跳过标记为 null,填充新的数组最后才完成。。。
循环了三次
用标准库其实很简单,只是你不会而已。
//+------------------------------------------------------------------+ //| test.mq4 | //| Copyright 2020,fxMeter | //| https://www.mql5.com/en/users/fxmeter | //+------------------------------------------------------------------+ #property copyright "Copyright 2020,fxMeter" #property link "https://www.mql5.com/en/users/fxmeter" #property version "1.00" #property strict #include <Arrays\ArrayString.mqh> CArrayString strObj; //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { for(int i=OrdersTotal()-1; i>=0; i--) { if(OrderSelect(i,SELECT_BY_POS)) { strObj.Sort(); if(strObj.Search(OrderSymbol())==-1) { strObj.Add(OrderSymbol()); } } } int total = strObj.Total(); for(int i=0; i<total; i++) { printf("%d: %s",i,strObj.At(i)); } return; }
感觉这也不用什么排序不排序的啊,干嘛要排序?
搞不懂到底是要怎样~~
Ziheng Zhuang:
标准库是啥?在哪里下载呢?。。。
用标准库其实很简单,只是你不会而已。
标准库是MT5自带的,在include文件夹
#include <Arrays\ArrayString.mqh>
利用 OrdersTotal() 遍历订单
我想实现创建一个当前持仓的品种 symbol 的 string 集合
除了多维数组 string[] 来实现外
有没有更加简单的方法,例如 java 里的 List 类型的 add 方法?
例如当前持仓 10 个订单,分别为 3个 eurusd 多单 2个 eurusd 空单
1个xauusd空单 2个gbpusd 空单 2个gbpusd多单
实现结果就是
一个数组里存放的是 3 个 货币对的 string {xauusd,gbpusd,eurusd}
怎么实现