打印数组c ++中重复数字的数量

时间:2016-08-02 13:54:11

标签: c++ arrays count duplicates

我想知道如何从数组大小为10的随机生成的数组中打印重复数字的数量,以及从1到10的数字。

实施例: Array1:1 7 6 5 6 7 8 10 9 8

模式数量:3

(因为它包括; 2个6个,2个7个,2个8个)

到目前为止,我的代码已经完成了这个

- (UIViewController *)currentTopViewController
{
    UIViewController *topVC = [[[[UIApplication sharedApplication] delegate] window] rootViewController];
    while (topVC.presentedViewController)
    {
        topVC = topVC.presentedViewController;
    }
    return topVC;
}

1 个答案:

答案 0 :(得分:1)

有一种非常简单的模式。您可以使用大小等于可能随机数范围的数组(我将使用向量)

//creates a vector ArraySize big with all elements initialized to 0
std::vector<int> results(ArraySize, 0);

然后,遍历循环并使用随机数作为索引并递增值

for(int i = 0; i < 10; i++)
  results[(rand() % 10)]++;

最后,计算有多少种模式

std::cout << "Number of patterns: ";
std::cout << std::count_if(results.begin(), results.end(), [](int i){return i > 1;});
std::cout << std::endl;