अंतिम अद्यतन:2026-10-12
C++ STL कंटेनरों का तुरंत आउटपुट¶
मैंने वू सर के कोड में कुछ बदलाव किए हैं—— यहाँ क्लिक करके सीधे कोड तक पहुँचें
इनपुट:
आउटपुट परिणाम दिखता है:
¶
कैसे जोड़ें¶
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 बचा लेता है। प्रश्न हों तो कमेंट सेक्शन में आपका स्वागत है~
संबंधित विषय¶
- Bazel से C++ प्रोजेक्ट बिल्ड करना | C++那些事
- Bazel और LLDB संयुक्त डिबगिंग | C++那些事
- CMake की शुरुआत और व्यवहार | C++那些事
- Conan C++ पैकेज मैनेजर की शुरुआत | C++那些事
- C++ Insights कंपाइल-टाइम अवलोकन | C++那些事
- C++ Jupyter Notebook इंटरैक्शन | C++那些事
- C++ string को int में बदलना | C++那些事
- C++ dbg-macro डीबगिंग मैक्रो | C++那些事
- GCC कंपाइलेशन विकल्पों की विस्तृत जानकारी | C++那些事
- GDB से C++ प्रोग्राम डीबग करना | C++那些事