C++ 如何在不使用 vector 的情况下从数组中删除 0 值
C++ How to remove 0 values from array without using vector
正如标题所说,我想删除数组中包含 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
指向传递结果数组末尾的位置。
由于它是一个数组,因此实际数组大小不会更改。我们所能做的就是忽略数组中未使用的部分。
相关文章:
- 是默认情况下分配给char数组常量的值
- C++默认情况下,指针类型数组的元素是否保证初始化为 nullptr?
- C++数组与向量排序(在我的情况下,向量比数组慢~2.5倍(无优化))
- 如何在不使用 C++ 中的数组或函数的情况下查找 N 位数字的所有排列
- 如何在没有硬编码的情况下以C++为单位获取类数组的长度?
- 有没有一种惯用的方法可以在不存储变换或不必要地重新计算的情况下找到数组变换的最小/最大值?
- 使用一个内存集数组和单个堆栈在 O(n) 中查找数组的下一个更大元素
- 在 c 中给定一个固定数的情况下,找到所有可能的加法和组合(给定一个总和,找到它的可能的加法和排列
- 如何在不知道大小的情况下读取文本文件并存储到数组中
- 在不进行排序的情况下查找数组中n个最小值的索引
- 在这种情况下,数组a会被取消分配吗
- 如何对同一数组索引下的结构成员进行排序?
- 有没有办法将数字作为字符串,并在不使用浮点数或双精度数的情况下将其四舍五入到确切的位数
- 我可以在不知道文本文件的列数的情况下读取二维数组中的文件吗?
- 如何在没有浮点数/双精度数的情况下生成均匀和高斯分布的伪随机数
- 在给定每行按钮数的情况下,查找需要多少行
- c++中,数组的下标需要为整型
- c/c++:二维数组变量下标
- 字符串/数组情况c++
- 如何将分配给*Child[n]的*Base指向Child数组的下一个元素