生成測試用例(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
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP