2011-08-04 17 views
57

सी ++ वेक्टर के सी # समकक्ष क्या है?सी # सी ++ वेक्टर के बराबर, संगत स्मृति के साथ?

मैं इस सुविधा के लिए तलाश कर रहा हूँ:

समीपवर्ती संग्रहीत स्मृति बनाम मानक सरणियों पहुँच के लिए कोई प्रदर्शन दंड है की एक गतिशील सरणी है करने के लिए।

मैं खोज रहा था और वे .NET equivalent to the vector in C++ is the ArrayList कहते हैं, तो:

Do ArrayList कि सन्निहित स्मृति सुविधा है?

+4

CLR अपर्याप्त धातु आपको यह निर्दिष्ट करने के लिए (या यहां तक ​​लगातार उम्मीद) कैसे एक संरचना स्मृति में आवंटित किया जाता है के पास नहीं है? – Aphex

उत्तर

68

आप List<T> का उपयोग कर सकते हैं और T एक मान प्रकार है जो इसे संगत मेमोरी में आवंटित किया जाएगा यदि T एक संदर्भ प्रकार है तो यह मामला नहीं होगा।

उदाहरण:

List<int> integers = new List<int>(); 
integers.Add(1); 
integers.Add(4); 
integers.Add(7); 

int someElement = integers[1]; 
+1

क्या आप कुछ उदाहरण बता सकते हैं? – cMinor

+2

@cMinor, 'सूची ' कक्षा के दस्तावेज में कई उदाहरण हैं लेकिन मैंने एक को शामिल करने के लिए अपना उत्तर अपडेट कर दिया है। –

+4

मैं सीएलआर से 100% परिचित नहीं हूं, लेकिन यह समझ में आता है कि भले ही 'टी' एक संदर्भ प्रकार है, फिर भी आपके पास संगत स्मृति होगी। यह मूल रूप से पॉइंटर्स की एक सरणी है ... – josaphatv

14

उपयोग List<T>। आंतरिक रूप से यह सरणी का उपयोग करता है और सरणी संगत स्मृति का उपयोग करते हैं।

+6

+1। लोग 'ऐरेलिस्ट' का जिक्र करने पर जोर क्यों देते हैं? –

+1

पूरी तरह से सच नहीं है। यदि टी एक संदर्भ प्रकार है, तो संगत स्मृति नहीं होगी। –

+2

@Matteo यदि आप स्रोत को देखते हैं, तो 'निजी टी [] _items;' बैकएंड स्टोरेज, संदर्भ प्रकार या नहीं के लिए उपयोग किया जाता है। –

12

सी # में बहुत सारे संदर्भ प्रकार हैं। यहां तक ​​कि अगर एक कंटेनर स्टोर संदर्भ समीप, खुद वस्तुओं ढेर

12

सबसे पहले के माध्यम से बिखरे हुए किया जा सकता है, Arraylist या Hashtable से दूर रहना। जेनिक्स के पक्ष में उन वर्गों को बहिष्कृत माना जाना चाहिए। वे अभी भी विरासत उद्देश्यों के लिए भाषा में हैं।

अब, आप जो खोज रहे हैं वह List<T> वर्ग है। ध्यान दें कि यदि टी एक मान प्रकार है तो आपके पास स्मृति का संकलन होगा, लेकिन स्पष्ट कारणों से टी टी संदर्भ प्रकार नहीं है।

संबंधित मुद्दे