ในส่วนนี้ เราจะมาดูกันว่าเราจะใช้ฟังก์ชัน C++ STL เพื่อสร้างกรณีทดสอบได้อย่างไร บางครั้งการสร้างกรณีทดสอบสำหรับโปรแกรมอาร์เรย์อาจเป็นกระบวนการที่ซับซ้อนและไม่มีประสิทธิภาพ C ++ มีวิธีการสองวิธีในการสร้างกรณีทดสอบ วิธีการเหล่านี้มีดังนี้ −
วิธี create()
ฟังก์ชัน C++ std::algorithm::generate() กำหนดค่าที่ส่งคืนโดยการเรียก gen ที่ต่อเนื่องกันไปยังองค์ประกอบในช่วงแรกถึงสุดท้าย ต้องใช้พารามิเตอร์สามตัวก่อน ตัวสุดท้าย และ 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 องค์ประกอบแรก ต้องใช้พารามิเตอร์สามตัวก่อน 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