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

📅  最后修改于: 2021-05-25 19:31:34             🧑  作者: Mango

为阵列程序生成测试用例可能是一个繁琐的过程。但是STL(标准模板库)中的generate和generate_n函数非常方便,可以使用随机值填充数组。

  • 产生()

    生成函数将通过调用生成器函数’gen’所提供的随机值分配给[begin,end)范围内的元素。注意,开始包含在范围内,但结束不包含在内。

    以下代码演示了generate的实现:

    // C++ program to demonstrate generate function in STL
    #include      
    using namespace std;
      
    // function to generate random numbers in range [0-999] :
    int randomize() 
    {   
        return (rand() % 1000); 
    }
      
    int main () 
    {
      // for different values each time we run the code
      srand(time(NULL)); 
        
      vector vect(10); // declaring the vector
      
      // Fill all elements using randomize()
      generate(vect.begin(), vect.end(), randomize);
      
      // displaying the content of vector
      for (int i=0; i

    输出 :

    832 60 417 710 487 260 920 803 576 58
    

    注意:由于运行良好,每次运行代码时输出都会不同。如果删除srand,则每次运行代码时,我们将获得相同的随机数集。

  • generate_n()
    generate_n的工作与从begin迭代器指向的元素开始最多生成n个元素的工作相同。以下代码演示了generate_n的工作方式:
    // C++ program to demonstrate generate_n() function in STL
    #include     
    using namespace std;
      
    // function to generate random numbers in range [0-999] :
    int randomize() 
    {   
        return (rand() % 1000); 
    }
      
    int main () 
    {
      // for different values each time we run the code 
      srand(time(NULL)); 
        
      vector vect(10); // declaring the vector
      
      // Fill 6 elements from beginning using randomize()
      generate_n(vect.begin(), 6, randomize);
      
      // displaying the content of vector
      for (int i=0; i

    输出 :

    177 567 15 922 527 4 0 0 0 0
    

    注意:在这里,由于运行良好,每次运行代码时输出也会有所不同。如果删除srand,则每次运行代码时,我们将获得相同的随机数集。

如果您希望与行业专家一起参加现场课程,请参阅《 Geeks现场课程》和《 Geeks现场课程美国》。