मेरे पास एक निश्चित स्ट्रक्चर है:
struct MyClass :: MyStruct {सांख्यिकी आंकड़े; Oject * objPtr; बूल सक्रिय है; QDateTime समाप्ति; }; जिसके लिए मुझे एक निजी कंटेनर में संकेत दिए जाने की आवश्यकता है मैं क्लाइंट कोड से ऑब्जेक्ट्स प्राप्त कर रहा हूं जिसके लिए मुझे MyStruct में एक पॉइंटर वापस करने की आवश्यकता है I उदाहरण के लिए: <पूर्व> QList & lt; माइस्ट्रग * & gt; MyClass :: structPtr (आंकड़े आंकड़े) {// सभी माइस्ट्रेड * लौटें जिनके लिए myStruct- & gt; आँकड़े == आँकड़े (== अतिभारित है)} या
<कोड> QList & LT; MyStruct * & gt; MyClass :: structPtr (वस्तु * objPtr) {// सभी माइस्ट्रेड * लौटें जिनके लिए myStruct- & gt; objPtr == objPtr} अभी मैं इन को में संग्रहीत कर रहा हूं QLinkedList & lt; MyStruct * & gt; ताकि मैं तेज प्रविष्टि कर सकूं, और लगभग QList & lt; MyStruct * & gt; के बराबर lookups आदर्श रूप से मैं अपनी प्रविष्टि की गति को खोए बिना, लुकअप को तेज़ करने में सक्षम होना चाहूंगा। यह मुझे QHash को देखने के लिए प्रेरित करता है, लेकिन मुझे यकीन नहीं है कि मैं एक QHash का उपयोग कैसे करूँगा जब मैं केवल कुंजी के बिना मूल्यों को संचित कर रहा हूँ, या यहां तक कि अगर यह अच्छा है विचार। उचित क्यूटी / सी + + एक समस्या को हल करने का तरीका क्या है? आदर्श रूप से, लुकअप बार होना चाहिए & lt; = लॉग (n) । क्या एक क्यूश एक अच्छा विचार है? यदि हां, तो मुझे एक कुंजी और / या मान के लिए क्या प्रयोग करना चाहिए?
यदि आप केवल साथ रह सकते हैं अपने डेटा को एक विशिष्ट तरीके से देखकर, आपके लिए एक QHash ठीक होना चाहिए। हालांकि, आपके मामले में जहां आप सूचियों को खींच रहे हैं, आप QMultiHash की जांच कर सकते हैं और इसके .values () सदस्य हालांकि, यह नोट करना महत्वपूर्ण है: एक क्यूएचश का मुख्य प्रकार ऑपरेटर == () और एक वैश्विक हैश समारोह जिसे qHash () कहा जाता है)
यदि आपको अलग-अलग समय पर अलग-अलग सूचनाओं के आधार पर इन सूचियों को खींचने में सक्षम होने की आवश्यकता है, तो आप सूचियों पर फिर से बेहतर हो सकते हैं क्यूटी के सभी कंटेनरों में एसटीडी-स्टाइल इटेरेटर्स उपलब्ध हैं, जिसमें इसके हैश मैप्स भी शामिल हैं।
No comments:
Post a Comment