C++ container/array/tuple consistent access interface -
क्या कंटेनरों में काम करता है? की तर्ज पर कुछ:
<पूर्व> element_of (std_pair)। Get & lt; 1 & gt; (); element_of (boost_tuple) .Get & LT; 0 & gt; (); element_of (pod_array) .Get & LT; 2 & gt; ();
सिद्धांत रूप में मैं खुद को लिख सकता हूं, लेकिन मैं wheel.thanks को फिर से नहीं बदलना चाहता हूं
मुझे ऐसी चीज़ों से अवगत नहीं है।
आप शायद उन प्रकार के लिए एक मुक्त मिल समारोह को लागू कर सकते हैं। बूस्ट.Tuple पहले से ही है std :: pair
इसमें सी ++ 0x है और बाकी को बहुत जटिल नहीं होना चाहिए।
उदा।
#include & lt; iostream & gt; # शामिल करें & lt; उपयोगिता & gt; # शामिल करें & lt; vector & gt; # शामिल करें & lt; boost / tuple / tuple.hpp & gt; नाम स्थान प्राप्तकर्ता {टेम्पलेट & lt; आकार_टी सूचकांक, वर्ग कंटेनर & gt; टाइपनाम कंटेनर :: संदर्भ मिल (कंटेनर और सी) {रिटर्न सी [इंडेक्स]; } टेम्पलेट & lt; आकार_टी सूचकांक, वर्ग कंटेनर & gt; टाइपनाम कंटेनर :: कन्स्ट्रैरेफरेंस मिल (कॉन्स्ट कन्टेनर & amp; सी) {रिटर्न सी [इंडेक्स]; } टेम्पलेट & lt; आकार_टी सूचकांक, वर्ग टी & gt; टी & amp; मिल (टी * एआर) {रिटर्न आगमन [सूचकांक]; } नामस्थान विवरण {टेम्पलेट & lt; आकार_टी सूचकांक, कक्षा टी, कक्षा यू & gt; संरचना पेअरटीपबिवाई इंडेक्स; टेम्पलेट & lt; वर्ग टी, कक्षा यू & gt; संरचना पेअरटाइपबिइंडएक्स & lt; 0u, टी, यू & gt; {टाइप किए गए एफ टी प्रकार; प्रकार & amp; ऑपरेटर () (स्टडी :: जोड़ी & lt; टी, यू & gt; एंड पी) const {रिटर्न पी। फास्ट; } कंस्ट्रक्ट एंड amp; ऑपरेटर () (कॉन्स्ट स्टडी :: जोड़ी & lt; टी, यू & gt; & amp; पी) const {रिटर्न p.first; }}; टेम्पलेट & lt; वर्ग टी, कक्षा यू & gt; संरचना पेअरटाइपबिइंडएक्स & lt; 1u, T, U & gt; {टाइप किए गए यूफ़ प्रकार; प्रकार & amp; ऑपरेटर () (एसटीडी :: जोड़ी & lt; टी, यू & gt; एंड पी) const {रिटर्न पी। सीकंड; } कंस्ट्रक्ट एंड amp; ऑपरेटर () (कॉन्स्ट स्टडी :: जोड़ी & lt; टी, यू & gt; & amp; पी) const {रिटर्न p.second; }}; } टेम्पलेट & lt; आकार_टी सूचकांक, कक्षा टी, कक्षा यू & gt; Typename detail :: PairTypeByIndex & lt; सूचकांक, टी, यू & gt; :: प्रकार & amp; प्राप्त करें (स्टडी :: युगल & lt; T, U & gt; & amp; p) {विवरण: PairTypeByIndex & lt; सूचकांक, टी, यू & gt; () (पी); } टेम्पलेट & lt; आकार_टी सूचकांक, कक्षा टी, कक्षा यू & gt; कॉन्स्ट टाइपनाम विवरण :: PairTypeByIndex & lt; इंडेक्स, टी, यू & gt; :: टाइप & amp; प्राप्त करें (कॉन्स्ट स्ट्रोड :: जोड़ी & lt; टी, यू & gt; & amp; पी) {वापसी विवरण :: PairTypeByIndex & lt; सूचकांक, टी, यू & gt; () (पी); } Boost :: get; } Int main () {boost :: tuple & lt; int, int & gt; टपल (2, 3); Std :: cout & lt; & lt; प्राप्तकर्ता :: पाने के लिए & lt; 0 & gt; (ट्यूपल) & lt; & lt; '\ N'; std :: वेक्टर & LT; पूर्णांक & gt; Vec (10, 1); Vec [2] = 100; Std :: cout & lt; & lt; प्राप्तकर्ता :: पाने के लिए & lt; 2 & gt; (vec) & lt; & lt; '\ N'; Const int arr [] = {1, 2, 3, 4, 5}; Std :: cout & lt; & lt; प्राप्तकर्ता :: पाने के लिए & lt; 4 & gt; (एआरएम) & lt; & lt; '\ N'; Std :: जोड़ी & lt; int, float & gt; जोड़ी (41, 3.14); ++ गेटर :: पाने के & lt; 0 & gt; (जोड़ी); Const std :: जोड़ी & lt; int, float & gt; Pair_ref = युगल; Std :: cout & lt; & lt; प्राप्तकर्ता :: प्राप्त करें & lt; 0 & gt; (pair_ref) & lt; & lt; '' & Lt; & lt; प्राप्तकर्ता :: प्राप्त करें & lt; 1 & gt; (pair_ref) & lt; & lt; '\ N'; }
Comments
Post a Comment