c++将数组索引声明为空

标签 c++ arrays repeat

我有一个我必须忽略的数组,删除所有重复的数字,

例如 1 2 4 3 3 0 1 2 0

我所做的是检查数字并尝试像 \0NULL 这样的东西,但它们都给出 0 的值,所以这不是解决方案。那么有没有办法让索引为空或忽略它呢?这些数字必须是随机的,所以我不能声明类似

array[i]=123;
if(array[i]==123) dont_print_out();

最佳答案

如果您的数组是一个普通的 C++ 数组,您将无法“删除”项目。 您唯一的解决方案是将剩余的项目移到左侧。

如果你的数组是一个std::vector,你可以使用erase函数。然而,由于 vector 中底层数据的结构,你做的基本上和以前一样:效率低下。

如果您想有效地移除序列中随机放置的项目,请考虑使用另一种容器,例如 std::list

最后,为了实现您的目标,请查看 std::setstd::unordered_set。这些容器可确保您的元素独一无二。

关于c++将数组索引声明为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17068394/

相关文章:

c++ - 重印二维数组素因子

javascript - 如何从参数已存在的 GET 数组中查找数据

C++ 在你的类中使用 && 而没有 bool/&& 重载?

c++ - 如何使msvc向量化浮点加法?

javascript - 在 jQuery 中将类似数组的变量转换为带有整数的数组

ruby-on-rails - 用于重复事件的 gem ice_cube

Angular 5 - 相当于 AngularJS 的 $interval

php - 重新声明 - 如果数组有多个值,则重复函数

c++ - 如何正确替换全局new和delete运算符

javascript - 将单击的按钮的值插入数组