生成測試用例(C++ 中的 generate() 和 generate_n())


在本節中,我們將瞭解如何使用 C++ STL 函式來生成測試用例。有時,為陣列程式生成測試用例可能是一個非常複雜且低效的過程。C++ 提供了兩種生成測試用例的方法。這些方法如下:

generate() 方法

C++ 函式 std::algorithm::generate() 將連續呼叫 gen 返回的值賦給 first 到 last 範圍內的元素。它接受三個引數 first、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() 將連續呼叫 gen 返回的值賦給前 n 個元素。它接受三個引數 first、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

更新於: 2020-08-27

228 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.