C++11 如何忽略0';s在数组中并打印出唯一的数字

C++11 如何忽略0';s在数组中并打印出唯一的数字,c++11,C++11,所以我的程序应该使用一个5大小的数组来存储输入的整数。如果它是重复的整数,则不会存储到数组中 这里的问题是,由于我将大小初始化为5,数组中可能会无限期地存在0。我只需要输出唯一的数字我该怎么做 我注意到的一件事是,没有我的无符号int位置每当我输入一个重复的整数,它就会跳过索引 例如数组[0]=10,数组[1]=10//重复,数组[2]=20//输入20,本应存储在数组[1]中,但没有。 因此,我只能在它不是重复项时递增,以确保在输入重复项时不会跳过索引 有没有什么我可以做的或者用不同的方法来得

所以我的程序应该使用一个5大小的数组来存储输入的整数。如果它是重复的整数,则不会存储到数组中

这里的问题是,由于我将大小初始化为5,数组中可能会无限期地存在0。我只需要输出唯一的数字我该怎么做

我注意到的一件事是,没有我的无符号int位置每当我输入一个重复的整数,它就会跳过索引

例如数组[0]=10,数组[1]=10//重复,数组[2]=20//输入20,本应存储在数组[1]中,但没有。 因此,我只能在它不是重复项时递增,以确保在输入重复项时不会跳过索引

有没有什么我可以做的或者用不同的方法来得到我的结果

代码:

#包括
#包括
#包括
使用名称空间std;
常量无符号整数最小值=10;
常量无符号整数最大值=100;
const size\u t arraySize=5;
数组numberraray={};
模板
布尔isDuplicate(数组,int值)
{
for(无符号整数i=0;icout代码中唯一缺少的部分是
下的附加块,否则如果
块:

 else {
     cout << "The number: " << input << " is not unique\n" << endl;
     --i;
 }
else{

cout代码中唯一缺少的部分是
下的附加块,否则如果
块:

 else {
     cout << "The number: " << input << " is not unique\n" << endl;
     --i;
 }
else{

问题是,当用户输入一个重复的数字时,它会忽略它,因此它仍然会增加外循环,以提示用户输入下一个数字。例如:输入1:10,输入2:10,然后它会说输入3:20……它不会减少它,所以我最初的问题是需要指出的是,数组的最后一个索引根本没有被使用,因此它是0。我只需要打印出唯一的数字,而不是0。谢谢!nevemind…我得到了它lol。我太专注于打印整个数组了,但我忘了位置在跟踪我使用的元素,我可以只打印出位置ons。哈哈,谢谢你的帮助!真的很感激。如果订购对你来说不重要,你可以看看
std::unordered_set
,它可以用更少的代码行解决你的问题:。无论如何,不客气。;)问题是,当用户输入一个重复的数字时,它将我们忽略它,这样它仍然会增加外循环,以提示用户输入下一个#。例如:enter#1:10,enter#2:10,然后它会说enter#3:20…..它不会减少它,所以我最初的问题是,数组的最后一个索引将不会被使用,因此它是0。我不需要这样做o只打印出唯一的数字,而不是0。谢谢!没问题…我得到了它。我太专注于打印整个阵列,但我忘记了位置在跟踪我使用的元素,我可以只打印出位置。哈哈,谢谢你的帮助!非常感谢。如果订购没有对你来说没关系,你可以看看
std::unordered\u set
,它可以用更少的代码行解决你的问题:。无论如何,不客气。。)