이 섹션에서는 C++ STL 함수를 사용하여 테스트 케이스를 생성하는 방법을 볼 것입니다. 때때로 어레이 프로그램에 대한 테스트 케이스를 생성하는 것은 매우 복잡하고 비효율적인 프로세스가 될 수 있습니다. C++는 테스트 케이스를 생성하는 두 가지 방법을 제공합니다. 이러한 방법은 다음과 같습니다 -
create() 메소드
C++ 함수 std::algorithm::generate()는 gen에 대한 연속 호출에 의해 반환된 값을 처음에서 마지막 범위의 요소에 할당합니다. 첫 번째, 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()은 처음 n개의 요소에 대해 gen에 대한 연속 호출에서 반환된 값을 할당합니다. 먼저 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