C++ 如何在不使用 vector 的情况下从数组中删除 0 值

C++ How to remove 0 values from array without using vector

本文关键字:数组 情况下 删除 vector C++      更新时间:2023-10-16

正如标题所说,我想删除数组中包含 0 的元素。

当用户提示一个相同的整数时,程序会拒绝用户输入,并会自动在那里放一个 0,但我希望它被删除。

这是我当前输出的 20 个数组

25     35     50     23     95     55      9     85     45      0     
97     56      0     33     75      0    101     86    100      0 

这是我的愿望输出,具有相同的用户提示

25    35    50    23    95   55    85    45    97   
56    33    75    86   100

我仍然更喜欢使用std::vector尽管这个问题提到了"不使用向量"。但是,无论如何,让我们尝试使用数组来执行此操作。

int int_array[20] = {/*...*/};
int* last_ptr = std::remove(std::begin(int_array), std::end(int_array), 0);
for (int* it = int_array ; it != last_ptr ; ++it)
    cout << *it << endl;

按照惯例,生成的last_ptr指向传递结果数组末尾的位置。

由于它是一个数组,因此实际数组大小不会更改。我们所能做的就是忽略数组中未使用的部分。

相关文章: