C++ 寻找数组唯一成员的算法

C++ 寻找数组唯一成员的算法,c++,arrays,algorithm,C++,Arrays,Algorithm,我需要编写一个简单的算法来: 查找并排序数组的唯一成员 将这些成员放到另一个数组中 计算唯一成员的数目 下面是一个例子: char array1[103] = {'V', 'U', 'A', 'A', 'U', 'U', 'A', 'A', 'V', 'U', 'A', 'V', 'V', 'U', 'U'}; char array2[10]; //Empty //Output should be: 3 V U A 我需要用C++编写它,但是PiSodoDO代码也很棒。我可以自己写代码,我只需

我需要编写一个简单的算法来:

  • 查找并排序数组的唯一成员
  • 将这些成员放到另一个数组中
  • 计算唯一成员的数目
  • 下面是一个例子:

    char array1[103] = {'V', 'U', 'A', 'A', 'U', 'U', 'A', 'A', 'V', 'U', 'A', 'V', 'V', 'U', 'U'};
    char array2[10]; //Empty
    //Output should be:
    3
    V U A
    
    我需要用C++编写它,但是PiSodoDO代码也很棒。我可以自己写代码,我只需要了解这个算法

  • 创建一个空的
    std::无序集
    对象。集合是仅包含唯一元素的集合
  • 循环输入数组,将元素添加到集合中
  • 完成后,将集合的元素复制到输出数组中
  • 以下可能会有所帮助:

    #include <cassert>
    #include <cstring>
    
    #include <algorithm>
    #include <iostream>
    
    int main(int argc, char *argv[])
    {
        char array1[103] = {'V', 'U', 'A', 'A', 'U', 'U', 'A', 'A', 'V', 'U', 'A', 'V', 'V', 'U', 'U'};
        char array2[10]; //Empty
        int size = strlen(array1); // get the used size of the array
    
        std::sort(std::begin(array1), array1 + size);
        auto it = std::unique(std::begin(array1), array1 + size);
        size = it - std::begin(array1);
        assert(size < 10);
        std::copy(std::begin(array1), it, std::begin(array2));
        std::cout << size << std::endl;
        for (int i = 0; i != size; ++i) {
            std::cout << array2[i] << " ";
        }
        // Output is:
        //3
        //A U V
        return 0;
    }
    
    #包括
    #包括
    #包括
    #包括
    int main(int argc,char*argv[])
    {
    字符数组1[103]={'V','U','A','A','U','U','A','A','V','U','A','V','V','U','U'};
    char array2[10];//为空
    int size=strlen(array1);//获取已使用的数组大小
    std::sort(std::begin(array1),array1+size);
    auto it=std::unique(std::begin(array1),array1+size);
    size=it-std::begin(array1);
    断言(大小<10);
    std::copy(std::begin(array1)、it、std::begin(array2));
    
    std::这里有一个建议,要找到算法,你必须考虑一下。试着做纸上要求你做的事情,写下每一步怎么做,然后你就会有你的伪代码。我不需要自动完成这项任务,我需要了解如何做。无序集
    使它独一无二,因为它不存在e重复。看看他的示例输出。他打算删除所有重复项。我们在这里是批评人们的提问风格还是帮助他们进行编程?以及“独特”PHP有“代码”> ARAYY独特的< /代码>,C++有“代码> STD::唯一的< /代码>。清楚地描述需要做的是编程的第一步和最重要的步骤。如果只有人们能够清楚地表达事物……那么,@ Barmar,不要责骂我!