忽略数组中的重复项

时间:2019-02-02 14:15:46

标签: c++

我在弄清楚如何跳过下面数组中的重复值时遇到了一些麻烦。第一个数组arrvalid保留数字,而arrcpt保留数字出现的次数。但是,当我运行该程序时,当我只希望将值打印一次时,它将同时打印两个值。有什么办法可以纠正这个问题?

cout<<"Numbers chosen most: ";
int skip =0;

for(x=0;x<countval;x++)
{
    for(q=0;q<countval;q++)
    {
        if((arrvalid[x]==arrvalid[q])&&(arrcpt[x] == 2))
        {
            skip=q;     
        }
    }

    cout<<" "<<arrvalid[skip];

}

当q从1开始时输出:93 93 34 34 34 34;

1 个答案:

答案 0 :(得分:1)

您要寻找std::set吗?
Set将确保您没有重复的记录。

编辑:示例代码。

cpp.sh

#include <set>
#include <iostream>
int main()
{
    int arr[] = {1,2,3,4,5,1};
    std::set<int> unique(arr, arr+6);
    for (auto i : unique) {
        printf("%i", i);
    }
    return 0;
}
# Output: 12345