Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

테스트 케이스 생성(C++에서 생성() 및 생성_n()


이 섹션에서는 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