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,不要责骂我!