2012-06-12 15 views
10

संभव डुप्लिकेट:
Standard data structure library in C?सी बराबर

करता सी जो भी डेटा संरचना सी ++ एसटीएल के समान कार्यान्वयन? विशेष रूप से सहयोगी कंटेनर, हैश मानचित्र या लगभग निरंतर समय पुनर्प्राप्ति के साथ कोई अन्य संरचना?

धन्यवाद!

+2

इसी तरह के कई प्रश्न: http://stackoverflow.com/search?q=[c]+data+structure+library –

उत्तर

19

सी में एसटीएल का "सटीक समकक्ष" नहीं हो सकता क्योंकि सी में टेम्पलेट या कक्षाएं नहीं हैं।

आप "GLib संग्रह" पुस्तकालय में रुचि हो सकती:

+0

ग्लिब बस उस के लिए एक महान पुस्तकालय है। –

5

glib में GHashTable एस शामिल हैं जो मूल रूप से कुंजी और मानों के बीच संबंध होते हैं - HashMap C++ में क्या है।

महत्वपूर्ण अंतर यह है कि आपको मनमाने ढंग से डेटा स्टोर करने के लिए void* का उपयोग करना होगा क्योंकि सी टेम्पलेट्स या जेनेरिक का समर्थन नहीं करता है। नकारात्मकता यह है कि संकलक आपके कोड की वैधता की जांच नहीं कर सकता है और आपको स्वयं पर शुद्धता सुनिश्चित करनी होगी।

-1

सी इस तरह कुछ भी नहीं हो सकता है, क्योंकि इसमें कोई आवश्यक विशेषताएं नहीं हैं- विशेष रूप से टेम्पलेट्स।

2

आप वास्तव में सी में अपना स्वयं का कार्यान्वयन कर सकते हैं। एक स्ट्रक्चर बनाएं, इसे अपने माता-पिता को पॉइंटर दें और एक फ़ंक्शन को कार्यान्वित करें जो आपके स्ट्रक्चर के उदाहरण के लिए पॉइंटर लौटाता है और आपके पास सी में आपकी कक्षाएं होती हैं। यदि आप समय लेते हैं और आप जानते हैं तो आप वास्तव में जा सकते हैं इसे कैसे करना है।