Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में टेस्ट केस जनरेट करना (generate() और generate_n())


इस खंड में हम देखेंगे कि C++ STL फंक्शन का उपयोग करके टेस्ट केस कैसे जनरेट कर सकते हैं। कभी-कभी ऐरे प्रोग्राम के लिए टेस्ट केस जनरेट करना बहुत जटिल और अकुशल प्रक्रिया हो सकती है। C++ टेस्ट केस जनरेट करने के लिए दो विधियां प्रदान करता है। ये विधियां निम्नलिखित हैं:

generate() विधि

C++ फंक्शन std::algorithm::generate() पहली से अंतिम स्थिति की रेंज में तत्वों को gen के क्रमिक कॉल्स द्वारा लौटाए गए मान निर्दिष्ट करता है। यह तीन पैरामीटर लेता है: 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() पहले n तत्वों के लिए gen के क्रमिक कॉल्स द्वारा लौटाए गए मान निर्दिष्ट करता है। यह तीन पैरामीटर लेता है: 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

  1. C++ में वृत्त और आयत के ओवरलैप की जांच C++ में वृत्त और आयत के ओवरलैप की जांच

    मान लीजिए हमारे पास एक वृत्त है जिसे (त्रिज्या, xc, yc) से दर्शाया जाता है, जहां (xc, yc) केंद्र के निर्देशांक हैं। हमारे पास एक अक्ष-संरेखित आयत भी है जिसे (x1, y1, x2, y2) से दर्शाया जाता है, जहां (x1, y1) निचले-बाएं कोने के निर्देशांक हैं और (x2, y2) ऊपरी-दाएं कोने के निर्देशांक हैं। हमें जांचना

  1. C++ में डोमिनो और ट्रोमिनो टाइलिंग C++ में डोमिनो और ट्रोमिनो टाइलिंग

    मान लीजिए हमारे पास दो प्रकार के आकार हैं, डोमिनो और ट्रोमिनो। उन्हें नीचे दिखाए अनुसार घुमाया जा सकता है:एक टाइलिंग में, प्रत्येक वर्ग को एक टाइल द्वारा कवर किया जाना चाहिए। यहां दो टाइलिंग तभी अलग हैं जब बोर्ड पर दो 4-दिशात्मक आसन्न सेल हों जैसे कि उन टाइलिंग में से केवल एक में दोनों वर्ग एक टाइल

  1. - C++ और C# में Foreach लूप

    C++ में Foreach लूप C++11 ने foreach लूप (रेंज-बेस्ड फॉर लूप) पेश किया जो कंटेनर के प्रत्येक एलिमेंट को ट्रैवर्स करता है। उदाहरण: #include <iostream> using namespace std; int main() { int myArr[] = { 99, 15, 67 }; // foreach लूप for (int ele : myArr) cout << ele << e