C++:删除一组数值中重复的部分,得到没有重复的数值
正好用到了就来写写。
有数组
string A[10] = {“A”,“B”,“B”,“C”,“A”,“D”,“E”,“D”,“B”,“C”};
string B[8];
思想:准备一个用于接收去重复后数值的数组B,写一个循环,当第一执行时,将A[0]装入B[0]中,第二次执行时,内嵌一个循环,将A[i] (i是循环变量)数组中等于B[0]的数值都清空,也就是当A数组的"A"装入B数组中,同时把A数组中的所有"A"值,清空。
代码如下,在VS2019上正常运行
#include <iostream>
#include <string>
using namespace std;
int main()
{
int n = 0;
string A[10] = {
"A","B","B","C","A","D","E","D","B","C"};
string B[8];
for (int i = 0; i < 10; i++)
{
if (i == 0)
{
B[i] = A[i];
n++;
}
if (i != 0 && A[i] != "NULL")
{
for (int j = 0; j < 10; j++)
if (A[j] == B[n - 1])
A[j] = "NULL";
for (int i = 0; i < 10; i++)
{
if (A[i] != "NULL")
{
B[n] = A[i];
n++;
break;
}
}
}
}
for (int i = 0; i < 8; i++)
{
cout << B[i] << endl;
}
cin.get();//暂停等待输入
}