विषय पर बढ़ें

अंतिम अद्यतन:2026-10-12

C++ STL कंटेनरों का तुरंत आउटपुट

मैंने वू सर के कोड में कुछ बदलाव किए हैं—— यहाँ क्लिक करके सीधे कोड तक पहुँचें

इनपुट:

map<int, int> mp{
            {1, 1},
            {2, 4},
            {3, 9}};
    cout << mp << endl;

आउटपुट परिणाम दिखता है:

{ 1 => 1, 2 => 4, 3 => 9 }

कैसे जोड़ें

output_container.h को प्रोजेक्ट में डाउनलोड करके include कर लें, बस इतना ही:

#include "output_container.h"

int main() {
    std::vector<int> vec{1, 2, 3, 4, 5};
    std::set<std::string> names{"light", "city"};
    std::cout << vec << std::endl;   // { 1, 2, 3, 4, 5 }
    std::cout << names << std::endl; // { city, light }
    return 0;
}

कौन-कौन से कंटेनर समर्थित हैं

vector, list, set, map, multiset, multimap, unordered श्रृंखला, pair — साथ ही कोई भी iterable कस्टम प्रकार (begin/end implement कर दें तो काफ़ी), और nested कंटेनर भी सीधे प्रिंट हो जाते हैं।

सिद्धांत एक वाक्य में

कोर बात कंटेनरों के लिए operator<< specialize करना है: SFINAE (void_t से begin()/end() की पहचान) से तय होता है कि "iterable है या नहीं"; हाँ तो element-स्तरीय आउटपुट, नहीं तो मूल आउटपुट स्ट्रीम। रुचि रखने वालों को सीधे सोर्स पढ़ने की सलाह है—— दो सौ पंक्तियों से कम, expression detection idiom सीखने का अच्छा सामग्री।

डिबगिंग के समय कंटेनर प्रिंट करना अनिवार्यता है; यह छोटा टूल अनगिनत हाथ से लिखे for loops बचा लेता है। प्रश्न हों तो कमेंट सेक्शन में आपका स्वागत है~

संबंधित विषय

टिप्पणियाँ