过滤数组重复数据

本文介绍了如何在编程中有效地过滤并去除数组中的重复数据,包括使用内置方法和自定义函数的方法,适用于多种编程语言。
void Replicatedata(CStringArray* inputData,CStringArray* outputData,int &size)
{
	CMap<CString , LPCTSTR , bool, bool &>    StrMap;
	for ( int i = 0; i < size; i ++ )
	{
		StrMap[inputData->GetAt(i)] = true;
	}
	POSITION pos = StrMap.GetStartPosition();
	int i = 0;
	while ( pos )
	{
		bool value;
		CString key;
		StrMap.GetNextAssoc( pos, key, value );
		outputData->Add(key);
		i ++;
	}
	size = i;
}

调用方法:

void CxxxDlg::OnBnClickedButton1()
{
	// TODO: 在此添加控件通知处理程序代码
	CStringArray intpuDate,outputDate;
	intpuDate.Add(L"abc");
	intpuDate.Add(L"abc");
	intpuDate.Add(L"abcd");
	intpuDate.Add(L"abcd123");
	intpuDate.Add(L"abcd123");
	intpuDate.Add(L"abcd45");
	int size = intpuDate.GetSize();
	Replicatedata(&intpuDate,&outputDate,size);
	for (int x = 0;x<size;x++)
	{
		AfxMessageBox(outputDate[x]);
	}
	
}

结果:

abcd123
abcd
abcd45
abc


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值