生成测试用例(C ++中的generate()和generate_n()

在本节中,我们将看到如何使用C ++ STL函数生成测试用例。有时为阵列程序生成测试用例可能非常复杂且效率低下。C ++提供了两种生成测试用例的方法。这些方法如下-

generate()方法

C ++函数std::algorithm::generate()将连续调用gen返回的值分配给first至last范围内的元素。它首先使用三个参数,last和gen,它们是正向迭代器到初始位置,向后迭代器到最终位置,以及不带参数调用的生成器函数和返回值。

示例

让我们看下面的实现以更好地理解-

#include <bits/stdc++.h>
using namespace std;
int create_random() {
   return (rand() % 1000);
}
int main () {
   srand(time(NULL));
   vector<int> data(15);
   generate(data.begin(), data.end(), create_random);
   for (int i=0; i<data.size(); i++)
      cout << data[i] << " " ;
}

输出结果

449 180 785 629 547 912 581 520 534 778 670 302 345 965 107

generate_n()方法

C ++函数std::algorithm::generate_n()将前n个元素的连续调用返回的值分配给gen。它首先需要三个参数,即n和gen,它们是将迭代器转发到初始位置,调用的数量将存在,并且将调用不带参数的生成器函数,并返回值。

示例

让我们看下面的实现以更好地理解-

#include <bits/stdc++.h>
using namespace std;
int create_random() {
   return (rand() % 1000);
}
int main () {
   srand(time(NULL));
   vector<int> data(15);
   generate_n(data.begin(), 6, create_random);
   for (int i=0; i<data.size(); i++)
      cout << data[i] << " " ;
}

输出结果

540 744 814 771 254 913 0 0 0 0 0 0 0 0 0