Composite data type
कंप्यूटर विज्ञान में, एक समग्र डेटा प्रकार या यौगिक डेटा प्रकार कोई भी डेटा प्रकार है जिसे प्रोग्रामिंग भाषा के आदिम डेटा प्रकारों और अन्य समग्र प्रकारों का उपयोग करके एक प्रोग्राम में बनाया जा सकता है। इसे कभी-कभी एक संरचना या समग्र प्रकार कहा जाता है, हालांकि बाद वाला शब्द सरणी, सूचियों आदि को भी संदर्भित कर सकता है। एक मिश्रित प्रकार के निर्माण के कार्य को रचना के रूप में जाना जाता है। समग्र डेटा प्रकार अक्सर स्केलर चर के साथ विपरीत होते हैं। सी/सी + + संरचनाएँ और वर्ग ए संरचना सी और सी + + की एक समग्र प्रकार की धारणा है, एक डेटा प्रकार जो लेबल किए गए क्षेत्रों या सदस्यों के एक निश्चित समूह की रचना करता है। यह उन्हें घोषित करने में उपयोग किए जाने वाले संरचना मुख्य शब्द के कारण कहा जाता है, जो संरचना या अधिक सटीक रूप से, उपयोगकर्ता-परिभाषित डेटा संरचना के लिए छोटा है। सी + + में, एक संरचना और एक वर्ग के बीच एकमात्र अंतर डिफ़ॉल्ट अभिगम स्तर है, जो वर्गों के लिए निजी है और संरचनाओं के लिए सार्वजनिक है। ध्यान दें कि सी + + में वर्ग और वर्ग मुख्य शब्द पूरी तरह से नए थे, सी प्रोग्रामिंग भाषा में पहले से ही एक कच्चे प्रकार की संरचनाएँ थीं। सभी उद्देश्यों और उद्देश्यों के लिए, सी + + संरचनाएं सी संरचनाओं का एक सुपरसेट बनाती हैंः वस्तुतः सभी वैध सी संरचनाएं समान शब्दार्थ के साथ वैध सी + + संरचनाएं हैं। घोषणा एक संरचना घोषणा में क्षेत्रों की एक सूची होती है, जिनमें से प्रत्येक में किसी भी प्रकार का हो सकता है। एक संरचना वस्तु के लिए आवश्यक कुल भंडारण सभी क्षेत्रों की भंडारण आवश्यकताओं के साथ-साथ किसी भी आंतरिक पैडिंग का योग है। उदाहरण के लिएः संरचना खाता {पूर्णांक खाता _ संख्या; चर * प्रथम नाम; चर * अंतिम नाम; फ्लोट बैलेंस;}; एक प्रकार को परिभाषित करता है, जिसे संरचना खाता के रूप में संदर्भित किया जाता है। इस प्रकार का एक नया चर बनाने के लिए, हम लिख सकते हैं संरचना खाता मेरा खाता; जिसमें एक पूर्णांक घटक है, जिसे myAccount.account_number द्वारा एक्सेस किया गया है, और एक फ्लोटिंग-पॉइंट घटक है, जिसे myAccount.balance द्वारा एक्सेस किया गया है, साथ ही साथ प्रथम नाम और अंतिम नाम घटक भी हैं। संरचना मायएकॉउंट में सभी चार मान शामिल हैं, और सभी चार क्षेत्रों को स्वतंत्र रूप से बदला जा सकता है। चूंकि कोड में बार-बार संरचना खाते को लिखना बोझिल हो जाता है, इसलिए संरचना के लिए अधिक सुविधाजनक पर्यायवाची प्रदान करने के लिए सी कोड में टाइपडेफ कथन देखना असामान्य नहीं है। हालांकि, कुछ प्रोग्रामिंग स्टाइल गाइड इसके खिलाफ सलाह देते हैं, यह दावा करते हुए कि यह प्रकार को अस्पष्ट कर सकता है। उदाहरण के लिएः टाइपडेफ संरचना खाता संख्या; चार * प्रथम नाम; चार * अंतिम नाम; फ्लोट बैलेंस;} खाता; सी + + कोड में, टाइपडेफ की आवश्यकता नहीं है क्योंकि संरचना का उपयोग करके परिभाषित प्रकार पहले से ही नियमित नेमस्पेस का हिस्सा हैं, इसलिए प्रकार को संरचना खाता या बस खाते के रूप में संदर्भित किया जा सकता है। एक अन्य उदाहरण के रूप में, एक त्रि-आयामी वेक्टर समग्र प्रकार जो तैरते बिंदु डेटा प्रकार का उपयोग करता है, के साथ बनाया जा सकता हैः संरचना वेक्टर {फ्लोट x; फ्लोट y; फ्लोट z;}; एक वेक्टर समग्र प्रकार के साथ एक चर नामित वेग को वेक्टर वेग के रूप में घोषित किया जाएगा; वेग के सदस्यों को एक बिंदु संकेतन का उपयोग करके एक्सेस किया जाएगा। उदाहरण के लिए, velocity.x = 5; वेग के x घटक को 5 के बराबर निर्धारित करेगा। इसी तरह, एक रंग संरचना का उपयोग करके बनाया जा सकता हैः संरचना रंग {अहस्ताक्षरित इंट लाल; अहस्ताक्षरित इंट हरा; अहस्ताक्षरित इंट नीला;}; 3डी ग्राफिक्स में, आपको आमतौर पर प्रत्येक शीर्ष की स्थिति और रंग दोनों का ध्यान रखना चाहिए। ऐसा करने का एक तरीका यह होगा कि पहले बनाए गए वेक्टर और रंग मिश्रित प्रकारों का उपयोग करके एक वर्टेक्स समग्र प्रकार बनाया जाएः संरचना वर्टेक्स {वेक्टर स्थिति; रंग रंग;}; त्वरितता पहले की तरह ही प्रारूप का उपयोग करके संरचना वर्टेक्स प्रकार का एक चर बनाएँः वर्टेक्स वी; सदस्य इस तरह से वी के घटकों को मान सौंपते हैंः v.position.x = 0.0; v.position.y = 1.5; v.position.z = 0.0; v.color.red = 128; v.color.green = 0; v.color.blue = 255; आदिम उपप्रकार संरचना का प्राथमिक उपयोग जटिल डेटा प्रकारों के निर्माण के लिए होता है, लेकिन कभी-कभी इसका उपयोग आदिम संरचनात्मक उपप्रकार बनाने के लिए किया जाता है। उदाहरण के लिए, चूंकि मानक सी के लिए आवश्यक है कि यदि दो संरचनाओं में समान प्रारंभिक क्षेत्र हैं, तो उन क्षेत्रों को एक ही तरह से दर्शाया जाएगा, कोड संरचना यदि i _ ooo _ old _ stub {long x, y;}; संरचना i _ ooo _ संस्करण _ 42 {लंबा x, y, z; चार * नाम; लंबा a, b, c;}; शून्य ऑपरेट _ ऑन _ i _ oooo (संरचना i _ ooo _ old _ stub *); संरचना i _ ooo _ संस्करण _ 42s;। .. .. ऑपरेट _ ऑन _ आई. एफ. ओ. ओ. (& एस); सही ढंग से काम करेगा। टाइप सिग्नेचर टाइप सिग्नेचर (या फ़ंक्शन प्रकार) आदिम और मिश्रित प्रकारों से बनाए जाते हैं, और समग्र प्रकारों का निर्माण करते समय स्वयं प्रकार के रूप में काम कर सकते हैंः टाइपडेफ़ संरचना {इंट x; इंट y;} बिंदु; टाइपडेफ़ डबल (* मीट्रिक) (बिंदु p1, बिंदु p2); टाइपडेफ़ संरचना {बिंदु केंद्र; दोहरी त्रिज्या; मीट्रिक मीट्रिक;} वृत्त; ऑब्जेक्ट संरचना संरचना (सी प्रोग्रामिंग भाषा) स्केलर (गणित) संदर्भ भी देखें।