逻辑:两数组之间元素异同比较,并考虑使其变为一致

逻辑:两数组之间元素异同比较

在做新旧记录的比较,增删改 的时候需要应用两数组元素的比较。
首先想到的是用嵌套的for循环来解决。

假设有数组A和数组B,现在的需求是 使数组B和数组A保持一致。但不是单纯的将A数组的值赋给B数值。要有一个比较的过程。

int A[4]={2,5,6,9};
int B[4]={4,5,9};
for(int i=0;i<4;i++)
{
	for(int j=0;j<4;j++)
	{
		if(A[i]==B[j])
		;//两数相同,需要执行命令待编
		else
		;//两数不相同
	}
}

B数组 需与 A数组 保持一致,增加缺少的,删掉多余的。也就是说 B数组应该增加的是2和6,应该删掉的是4。那需要将上面的空语句补充完整。并添加关键变量。

int A[4]={2,5,6,9};
int B[4]={4,5,9};
int total=4;//数组元素大小
int count=4;//数组元素大小
for(int i=0;i<4;i++)
{
	for(int j=0;j<4;j++)
	{
 		if(A[i]==B[j])
		total--;
	}
	if(total==count)//说明B数组中没有A数组的该元素
		B[i]=A[i];	
}

该循环结束后,B数组的值就应与A数组一致了。
所以在这个问题上外层循环的数组大小是一个关键变量。

这个问题是在写MT5本地跟单程序的时候考虑的。
现实场景就是,跟单信号源发送持仓记录给接收端,接收端按照持仓记录下单。当信号源有新的持仓,接收端则要遍历自己的持仓,然后增加没有的持仓;当信号源有关闭的持仓,接收端则需再次遍历,找到该订单并关闭。

关于这个MT5跟单现实场景我已经实现了,下一篇更新MT5实现跟单的具体代码。

以上。

发布了11 篇原创文章 · 获赞 3 · 访问量 1292

猜你喜欢

转载自blog.csdn.net/liangzixx/article/details/104539630
今日推荐