但行好事,莫问前程

数组删除相同的元素

数组删除相同元素

#include<iostream>
using namespace std;
/*
 * 一般数组去重复。
 * 找到数组的长度len
*/
void printarray(char a[],int len)
{
    for(int i=0;i<len;i++)
    {
        cout<<a[i]<<"";
    }
    cout<<"\n";
}
int deletarraysame(char a[],int len)
{
    char *pint=a;
    for(int i=0;i<len;i++)
    {
        for(int j=i+1;j<len;j++)
        {
            if(a[i]==a[j])
            {
                auto deletearray=[&len,pint,&j]
                {
                    for(int it=j;it<len;it++)
                    {
//                        cout<<it+1<<":"<<pint[it]<<"<-"<<pint[it+1]<<endl;
                        pint[it]=pint[it+1];

                    }
                    len--;
                };
                deletearray();
                j--;
            }
        }
    }
    return  len;
}
int main()
{
    int a[10]={1,2,3,2,2,6,1,2,7,4};
    char b[]="abcdefghijkabcdopq";
    int len=sizeof(b)/sizeof(b[0]);
    cout<<len<<endl;
    printarray(b,len);
    len=deletarraysame(&b[0],len);
    printarray(&b[0],len);
    cout<<len;
    return 0;
}
posted @ 2018-10-19 15:18  专业路过  阅读(567)  评论(0编辑  收藏  举报