ऑनलाइन C++ कंपाइलर और डीबगर

सर्वर मोड GDB में ब्रेकपॉइंट, वेरिएबल और स्टेप कंट्रोल के साथ C++ डीबग करें।

पहले से इंस्टॉल लाइब्रेरी
🚀 2,392,381 कुल निष्पादन (7 इस महीने)
आउटपुट

कोडिंग चैलेंज के साथ C++ का अभ्यास करें

सीधे इस एडिटर में प्रैक्टिकल समस्याएँ हल करें: सैंपल टेस्ट चलाएँ, सबमिट करें, और AI कोड रिव्यू पाएं।

सभी C++ चैलेंज
आसान

Average of Three

Average three whole numbers.

आप सीखेंगे अंकगणितभाग
BeginnerLearning-pathVariables
आसान

Rectangle Perimeter

Compute the perimeter of a rectangle from its sides.

आप सीखेंगे अंकगणितलौटाए गए मान
BeginnerLearning-pathVariables
मध्यम

जेनेटिक एल्गोरिदम की एक पीढ़ी

टूर्नामेंट चयन, सिंगल-पॉइंट क्रॉसओवर और म्यूटेशन से बिट स्ट्रिंग की अगली पीढ़ी बनाएँ।

आप सीखेंगे जेनेटिक एल्गोरिदमविकासवादी खोज
OptimizationSimulationएआई
अभी तक कोई समाधान नहीं
आसान

एप्सिलॉन-ग्रीडी मल्टी-आर्म्ड बैंडिट

एप्सिलॉन-ग्रीडी क्रिया चयन से मल्टी-आर्म्ड बैंडिट पर खोज और उपयोग के बीच संतुलन बनाएँ।

आप सीखेंगे खोज बनाम उपयोगबैंडिट
रीइन्फ़ोर्समेंट लर्निंगएआईमशीन लर्निंग
अभी तक कोई समाधान नहीं
आसान

मार्कोव चेन का अवस्था वितरण

मार्कोव चेन के ट्रांज़िशन मैट्रिक्स से एक प्रायिकता वितरण को कुछ कदमों तक आगे बढ़ाएँ।

आप सीखेंगे मार्कोव चेनप्रायिकता
Simulationएआईmath
अभी तक कोई समाधान नहीं
मध्यम

वैल्यू इटरेशन

बेलमैन ऑप्टिमैलिटी अपडेट को बार-बार लागू करके मार्कोव निर्णय प्रक्रिया की हर अवस्था का मूल्य निकालें।

आप सीखेंगे बेलमैन समीकरणMDP
रीइन्फ़ोर्समेंट लर्निंगएआईमशीन लर्निंग
अभी तक कोई समाधान नहीं
मध्यम

Q-लर्निंग अपडेट

अनुभवों की धारा पर Q-लर्निंग अपडेट लागू करें और देखें कि इनाम पिछली अवस्थाओं तक कैसे वापस पहुँचते हैं।

आप सीखेंगे Q-लर्निंगडिस्काउंटेड इनाम
रीइन्फ़ोर्समेंट लर्निंगएआईमशीन लर्निंग
अभी तक कोई समाधान नहीं
मध्यम

मिनिमैक्स टिक-टैक-टो

मिनिमैक्स से पूरे गेम ट्री को खोजकर टिक-टैक-टो की सबसे सही चाल चुनें।

आप सीखेंगे मिनिमैक्सगेम ट्री
Recursionएआई
अभी तक कोई समाधान नहीं
मध्यम

भारित ग्रिड पर A* खोज

गेम और रोबोट के पाथफ़ाइंडिंग के पीछे के खोज एल्गोरिदम A* से भू-भाग लागत वाले ग्रिड में सबसे सस्ता रास्ता खोजें।

आप सीखेंगे A* खोजह्यूरिस्टिक
GraphsGridsShortest-pathएआई
अभी तक कोई समाधान नहीं
मध्यम

टेम्परेचर और टॉप-k सैंपलिंग

भाषा मॉडल की तरह अगला टोकन चुनें: सबसे ऊँचे k logit रखें, टेम्परेचर लगाएँ और सैंपल करें।

आप सीखेंगे टेक्स्ट जनरेशनसैंपलिंग
एआईमशीन लर्निंग
अभी तक कोई समाधान नहीं
कठिन

मल्टी-हेड सेल्फ़-अटेंशन

इनपुट को क्वेरी, की और वैल्यू में प्रोजेक्ट करें, कई हेड में समानांतर अटेंशन चलाएँ और उन्हें जोड़ें।

आप सीखेंगे मल्टी-हेड अटेंशनमैट्रिक्स प्रोजेक्शन
एआईमशीन लर्निंग
अभी तक कोई समाधान नहीं
मध्यम

लेयर नॉर्मलाइज़ेशन

हर पंक्ति को माध्य 0 और प्रसरण 1 पर नॉर्मलाइज़ करें, फिर स्केल और शिफ़्ट करें, जैसा हर Transformer ब्लॉक करता है।

आप सीखेंगे लेयर नॉर्मTransformer
न्यूरल नेटवर्कएआईमशीन लर्निंग
अभी तक कोई समाधान नहीं

विषय के अनुसार देखें

Practical code, output, memory model, data structures, algorithms और modern C++ के साथ दोनों भाषाएँ साथ सीखें।

C/C++ उदाहरण →

💻 इस C++ ऑनलाइन एक्जीक्यूटर के बारे में

CodeUtility C++ Executor आपको ब्राउज़र में ही C++ कोड लिखने और चलाने देता है - कोई इंस्टॉलेशन या कंपाइलर सेटअप की जरूरत नहीं। यह एक सुरक्षित सैंडबॉक्स द्वारा संचालित है जो असली C++ मानकों C++11, C++14, C++17 से लेकर नवीनतम संस्करण तक सपोर्ट करता है।

यह टूल क्लाउड में चल रहे असली C++ कंपाइलर का उपयोग करके आपके कोड को कंपाइल और रन करता है, जिससे अलग-अलग संस्करणों में सटीक और एकसमान व्यवहार सुनिश्चित होता है। आप C++ की मूल अवधारणाओं जैसे variables, functions, loops, conditionals, और object-oriented programming के साथ बेझिझक प्रयोग कर सकते हैं।

चाहे आप इंटरव्यू की तैयारी कर रहे हों, आधुनिक C++ फीचर्स सीख रहे हों, या किसी एल्गोरिदम के लॉजिक को परखना चाहते हों, CodeUtility C++ Executor किसी भी डिवाइस से तुरंत कोड चलाने के लिए एक सरल लेकिन शक्तिशाली वातावरण प्रदान करता है।

सिर्फ़ एक कोड रनर से कहीं अधिक

एक ही एक्ज़ीक्यूटर में मल्टी-फ़ाइल एडिटर, अलग-थलग निष्पादन टर्मिनल, रनटाइम-विशिष्ट लाइब्रेरी, स्थायी वर्कस्पेस, साझाकरण और रीयल-टाइम सहयोग का उपयोग करें।

इस एक्ज़ीक्यूटर का उपयोग कैसे करें?

रनटाइम चुनें, फ़ाइल खोलें या बनाएँ, अपना कोड लिखें और चलाएँ चुनें। आउटपुट टर्मिनल में दिखाई देता है। साइन-इन उपयोगकर्ता वर्कस्पेस में फ़ाइलें रख सकते हैं, लाइब्रेरी इंस्टॉल कर सकते हैं और शेयर के माध्यम से सहयोग कर सकते हैं।

  1. एक संस्करण चुनें और वर्तमान फ़ाइल संपादित करें या वर्कस्पेस की दूसरी फ़ाइल खोलें।
  2. कोड चलाएँ, माँगे जाने पर टर्मिनल में इनपुट दें और सहेजा गया रन इतिहास देखें।
  3. जब कार्य के लिए एक से अधिक कोड अंश चाहिए, तो लाइब्रेरी, वर्कस्पेस टूल, शेयरिंग और चैट का उपयोग करें।

💡 C++ की बुनियादी बातें और उदाहरण जिन्हें आप ऊपर आज़मा सकते हैं

1. वेरिएबल्स और कॉन्स्टेंट्स घोषित करना

C++ में हर वेरिएबल का टाइप घोषित करना जरूरी है। ऐसे मान परिभाषित करने के लिए const का उपयोग करें जिन्हें initialization के बाद बदला नहीं जा सकता।

int age = 30;
double pi = 3.14159;
char grade = 'A';
std::string name = "Alice";
bool isActive = true;

// कॉन्स्टेंट्स
const int MAX_USERS = 100;
const std::string COMPANY = "CodeUtility";

// const को बदलने की कोशिश करने पर compile-time त्रुटि होगी
// MAX_USERS = 200; // ❌ त्रुटि

2. शर्तें (if / switch)

ब्रांचिंग के लिए if, else if, else का उपयोग करें। कई मानों के लिए switch का उपयोग करें।

int x = 2;
if (x == 1) {
    std::cout << "एक\n";
} else if (x == 2) {
    std::cout << "दो\n";
} else {
    std::cout << "अन्य\n";
}

// स्विच-केस
switch (x) {
    case 1:
        std::cout << "एक\n";
        break;
    case 2:
        std::cout << "दो\n";
        break;
    default:
        std::cout << "अन्य\n";
}

3. लूप्स

for, while, और do-while का उपयोग कोड ब्लॉक को दोहराने के लिए करें।

for (int i = 0; i < 3; i++) {
    std::cout << i << "\n";
}

int n = 3;
while (n > 0) {
    std::cout << n << "\n";
    n--;
}

4. ऐरे

ऐरे एक ही प्रकार के कई एलिमेंट्स स्टोर करते हैं।

int numbers[3] = {10, 20, 30};
std::cout << numbers[1] << "\n";

5. ऐरे/वेक्टर मैनिपुलेशन

डायनेमिक ऐरे के लिए std::vector का उपयोग करें।

#include <vector>

std::vector nums = {1, 2, 3};
nums.push_back(4);
nums.pop_back();

for (int n : nums) {
    std::cout << n << " ";
}

6. कंसोल इनपुट/आउटपुट

इनपुट के लिए std::cin और आउटपुट के लिए std::cout का उपयोग करें।

std::string name;
std::cout << "अपना नाम दर्ज करें: ";
std::cin >> name;
std::cout << "नमस्ते, " << name << "\n";

7. फ़ंक्शन्स

फ़ंक्शन्स पुन: प्रयोज्य लॉजिक को समूहित करते हैं। पैरामीटर्स और रिटर्न टाइप्स का उपयोग करें।

int add(int a, int b) {
    return a + b;
}

std::cout << add(3, 4);

8. मैप्स

std::map डिक्शनरी की तरह कुंजी-मूल्य जोड़े स्टोर करता है।

#include <map>

std::map ages;
ages["Alice"] = 30;
std::cout << ages["Alice"];

9. एक्सेप्शन हैंडलिंग

रनटाइम त्रुटियों को संभालने के लिए try और catch का उपयोग करें।

try {
    throw std::runtime_error("त्रुटि हुई");
} catch (const std::exception& e) {
    std::cout << e.what();
}

10. फ़ाइल I/O

फ़ाइलों से पढ़ने और लिखने के लिए fstream का उपयोग करें।

#include <fstream>

std::ofstream out("file.txt");
out << "नमस्ते फ़ाइल";
out.close();

std::ifstream in("file.txt");
std::string line;
getline(in, line);
std::cout << line;
in.close();

11. स्ट्रिंग मैनिपुलेशन

C++ स्ट्रिंग्स length(), substr(), और find() जैसी मेथड्स सपोर्ट करती हैं।

std::string text = "Hello World";
std::cout << text.length();
std::cout << text.substr(0, 5);
std::cout << text.find("World");

12. क्लासेस और ऑब्जेक्ट्स

C++ क्लासेस के माध्यम से ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग सपोर्ट करता है।

class Person {
  public:
    std::string name;
    Person(std::string n) : name(n) {}
    void greet() { std::cout << "नमस्ते, मैं " << name; }
};

Person p("Alice");
p.greet();

13. पॉइंटर्स

एक पॉइंटर किसी दूसरे वेरिएबल के मेमोरी ऐड्रेस को स्टोर करता है। ऐड्रेस पाने के लिए & का उपयोग करें, और उस ऐड्रेस पर मौजूद मान तक पहुँचने के लिए * (डिरेफरेंस) करें।

int x = 10;
int* ptr = &x;

std::cout << "x का मान: " << x << "\n";
std::cout << "x का ऐड्रेस: " << ptr << "\n";
std::cout << "पॉइंटर से मान: " << *ptr << "\n";

// पॉइंटर के जरिए x को बदलें
*ptr = 20;
std::cout << "अपडेटेड x: " << x << "\n";

🐞 %{language} कोड ऑनलाइन डीबग कैसे करें

ऑनलाइन %{language} डीबगर से कंपाइलर या IDE इंस्टॉल किए बिना रनटाइम और लॉजिक त्रुटियाँ खोजें। सर्वर मोड debug symbols के साथ कंपाइल करता है और प्रोग्राम को GDB में चलाता है।

  1. लाइन नंबर के पास ब्रेकपॉइंट लगाएँ।
  2. कंपाइल करके पहले ब्रेकपॉइंट पर रुकने के लिए Debug चुनें।
  3. वर्तमान लाइन, call stack और वेरिएबल देखें।
  4. Continue, Step Over, Step Into या Step Out उपयोग करें।
  5. सत्र समाप्त करने के लिए Stop चुनें।

एक छोटे दोहराए जा सकने वाले उदाहरण से शुरू करें और अनपेक्षित व्यवहार से ठीक पहले ब्रेकपॉइंट लगाएँ।