输出没有重复元素的动态数组(收缩数组)C++
Output dynamic array without duplicate elements (shrink the array) C++
我需要生成动态数组,并使用循环和基本代码删除重复元素(收缩数组((1,2,2,3==1,2,3(。我创建了一个数组,但不知道如何删除元素。也许,通过将唯一元素复制到新数组中。
void RandArrayA(int * A, const int m)
{
srand(time(0));
for (int a = 0; a < m; a++)
{
A[a] = rand() % 10 * (1 - 2 * (rand() % 2));
cout << A[a] << " ";
}
cout << endl;
}
void Find(int * A, const int m)
{
}
您不能删除元素。数组具有固定大小。
然而,你可以假装,让他们让开,假装他们已经不存在了。
当检测到"重复"时,将其移动到阵列的末尾。(你可能需要打乱所有后续元素,为其腾出空间,或者如果你不太在乎顺序,你可以使用一些花哨的交换把戏(。
然后,如果在总共n个值中总共检测到x重复,则只需要打印数组的第一个 n-x它们仍然存在,在数组的末尾,但您不需要对它们做任何操作。 让我们看看您的数据集: 不幸的是,这不是一个很好的演示示例,因为唯一重复的值是已经在数据集末尾了! 选择一个随机的替代数据集: 顺便说一句,Original: 1,3,5,4,5 (5 elements)
Reorganised: 1,3,5,4,5 (1 duplicate; therefore, 4 useful elements)
Original: 1,1,3,4,5,6,5,8 (8 elements)
Reorganised: 1,3,4,5,6,8,1,5 (2 duplicates; therefore, 6 useful elements)
std::remove
和朋友们就是这样工作的,这也是为什么你需要执行std::erase
来最终消除包含"隐藏"值的容器元素
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 将数组的地址分配给变量并删除
- 从C++本机插件更新Vector3数组
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 数组索引的值没有增加
- 将对象数组的引用传递给函数
- 为char数组调整zlib-zpipe
- 2D数组来自文本输入,中间有空格
- std::向量与传递值的动态数组
- 在c++中用vector填充一个简单的动态数组
- 使用strcpy将char数组的元素复制到另一个数组
- 使用指针从C++中的数组中获取最大值
- C++使用整数的压缩数组初始化对象
- 告诉一个 const char 数组,除了编译时 C 样式的字符串外,它不以 '