Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 输出不带重复元素的动态数组(收缩数组)C++;_C++_Arrays_Dynamic - Fatal编程技术网

C++ 输出不带重复元素的动态数组(收缩数组)C++;

C++ 输出不带重复元素的动态数组(收缩数组)C++;,c++,arrays,dynamic,C++,Arrays,Dynamic,我需要生成动态数组,并使用循环和基本代码删除重复元素(收缩数组)(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)); 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)
{

}
void randaraya(int*A,const int m)
{
srand(时间(0));
对于(int a=0;a不能删除元素。数组有固定大小

然而,你可以通过让他们让开,假装他们已经不存在来伪装它

当你检测到一个“复制品”时,将其移动到数组的末尾(你可能需要将所有后续元素都混洗以腾出空间,或者如果你不太在意顺序的话,你可以使用一些奇特的交换把戏)

然后,如果在总共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
和friends如何工作的,也是为什么您需要执行
std::erase
以最终删除包含“hidden”的容器元素值。

提示:您不能从数组中删除元素,只能覆盖它们。我需要缩小数组。您必须保留顺序吗?我的意思是,如果给定了
1 3 2 3 4 5
,您必须返回什么?1 3 2 4 5删除第二个重复的元素。结果是否需要与输入保持相同的顺序?非连续重复的元素是否可以获得删除?哪些?非常感谢你的回答。我忘了写下我们可以创建第二个数组并从第一个数组复制这些唯一的元素,但我不知道怎么做。@Alina:在我的第二个示例中,你可以创建一个大小为6的数组并将6个有用的元素复制到其中?老实说,尽管这样做毫无意义。好的。谢谢。:-)我是C++@Alina新手祝你好运!