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

RnD*_*RnD 2 c++ arrays repeat

我有一个数组,我必须忽略,删除所有数字repetitive,

例如 1 2 4 3 3 0 1 2 0

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

array[i]=123;
if(array[i]==123) dont_print_out();
Run Code Online (Sandbox Code Playgroud)

Mat*_*get 5

如果您的数组是普通的C++数组,则没有方法可以"删除"项目.您唯一的解决方案是将剩余的项目向左移动.

如果您的阵列是a std::vector,则可以使用该erase功能.但是,由于向量中基础数据的结构,您基本上与以前相同:它效率低下.

如果您想要有效地删除序列中随机定位的项目,请考虑使用其他类型的容器,例如std::list.

最后,要实现您的目标,请查看std::setstd::unordered_set.这些容器可确保您的物品独一无二.