सभी में एक क्रमबद्ध कंटेनर है,क्या एसटीएल
क्या एसटीएल में एक सॉर्टेड कंटेनर है? मेरा मतलब है कि निम्नलिखित है:
मेरे पास एक std :: वेक्टर है जहां फू एक कस्टम बनाया गया वर्ग है। मेरे पास कुछ प्रकार का तुलनित्र भी है जो वर्ग फू के खेतों की तुलना करेगा।
अब, मेरी कोड में कहीं मैं कर रहा हूँ:
std::sort(myvec.begin(), myvec.end(), comparator);
जो नियम मैं तुलनित्र में परिभाषित के अनुसार वेक्टर सॉर्ट होगा।
अब मैं उस वेक्टर में कक्षा फू का एक तत्व डालना चाहता हूं। मैं मैं सिर्फ लिखने के लिए पसंद करते हैं सकता है:
mysortedvector.push_back(Foo());
और क्या होगा कि वेक्टर अपनी जगह पर तुलनित्र के अनुसार इस नए तत्व डाल देंगे है।
इसके बजाय, अभी मैं लिखने के लिए है:
myvec.push_back(Foo());
std::sort(myvec.begin(), myvec.end(), comparator);
जो, बस समय की बर्बादी है, क्योंकि वेक्टर पहले से ही क्रमबद्ध हो जाता है और सभी मैं की जरूरत है उचित रूप से नए तत्व जगह है।
अब, मेरे कार्यक्रम की प्रकृति के कारण, मैं std :: map <> का उपयोग नहीं कर सकता क्योंकि मेरे पास कोई कुंजी/मूल्य जोड़े नहीं है, बस एक साधारण वेक्टर है।
यदि मैं stl :: सूची का उपयोग करता हूं तो मुझे फिर से प्रत्येक सम्मिलन के बाद सॉर्ट करने की आवश्यकता होती है।
आपके द्वारा प्रदान किए जा सकने वाले किसी भी सुझाव के लिए धन्यवाद।
के बारे में क्या 'std :: set' बना सकते हैं? – us2012
यदि आपको पता था कि यह कहां जाएगा, तो आप डालने() – james82345
@ us2012 का उपयोग कर सकते हैं, मैंने std :: set को देखा।समस्या यह है कि उन ऑब्जेक्ट को ग्रिड में प्रस्तुत किया जाएगा, जहां उपयोगकर्ता उन्हें सभी वर्ग के सदस्य के आधार पर सॉर्ट कर सकता है और उन्हें फिट बैठने के तरीके में संशोधित कर सकता है। चूंकि std :: सेट सदस्य परिभाषा के आधार पर हैं, यह कंटेनर मेरे लिए नहीं है। – Igor