注意:我这里说的只是基础思路,用来给未来的C++萌新们提供参考。当然作为现在的萌新,很希望可以得到大佬们的指点。
方法一:标记法
就是同时定义一个与数据组数量相同的数组,然后每个数据都初始化成1.
int a[n];
for(int i=0;i<n;i++)
{
a[i]=1;
}
接下来进行循环查找,如果找到了指定数据,就把对应顺序的数组的数据变成0.
for(int i=0;i<n;i++)
{
if(...) a[i]=0;
}
最后输出的时候,如果对应顺序数组的数据为0,则不进行输出。
for(int i=0;i<n;i++)
{
if(a[i]!=0) cout<<b[i]<<endl; //这里b[]是数据组
}
方法二:覆盖法
循环查找数据时,找到了对应的数据,则使之后的每一个数据依次覆盖上一个数据(记得同时使n减去1)
for(int i=0;i<n;i++)
{
if(...)
{
for(int j=i;j<n;j++) { a[j]=a[j+1]; } //这里a[]是数据组
n--;
}
}
方法三:置换法
倘若发现有与指定数据相同的数据时,将其与最后的数据置换(第一个相同的与倒数第一个置换,第二个相同的与倒数第二个置换位置,以此类推)。
for(int i=0,j=1;i<n;i++)
{
if(...)
{
int num=a[i]; //例子这里用的数据类型是int型,a[]是数组
a[i]=a[n-j];
a[n-j]=num;
j++;
}
}
输出的时候注意不要输出后面的数据。