为阵列程序生成测试用例可能是一个繁琐的过程。但是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现场课程美国》。