生成测试用例(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