मेरे पास डुप्लिकेट से भरा डेटा का एक गुच्छा है और मैं डुप्लिकेट को खत्म करना चाहता हूं। आप जानते हैं, उदा। [1, 1, 3, 5, 5, 5, 7] [1, 3, 5, 7] बन जाता है।सी ++ std :: मानचित्र या std :: सेट - कुशलतापूर्वक डुप्लिकेट डालें
ऐसा लगता है कि मैं इसे संभालने के लिए या तो std :: map या std :: सेट का उपयोग कर सकता हूं। हालांकि मुझे यकीन नहीं है कि यह तेजी से (ए) कंटेनर में सभी मानों को सम्मिलित करता है, या (बी) जांचें कि क्या वे पहले से ही कंटेनर में मौजूद हैं और केवल अगर वे नहीं करते हैं तो डालें - क्या आवेषण बहुत कुशल हैं? यहां तक कि यदि कोई बेहतर तरीका है ... क्या आप ऐसा करने का एक तेज़ तरीका सुझा सकते हैं?
एक और सवाल - यदि मैं जो डेटा संग्रहीत कर रहा हूं वह पूर्णांक के रूप में छोटा नहीं है, और इसके बजाय एक कस्टम क्लास है, तो std :: नक्शा तेजी से डेटा (हैश?) को तेजी से स्टोर करने के लिए कैसे प्रबंधित करता है ऑपरेटर के माध्यम से उपयोग []?
एक 'set' अधिक उपयुक्त होगा। मैं अनुमान लगाने जा रहा हूं कि सेट में डालने और फिर डालने से बस धीमा हो जाएगा क्योंकि आपको अनिवार्य रूप से पूर्व में दो मुख्य लुकअप करना होगा। – GWW
परिभाषा के अनुसार उनमें से कोई भी आपके लिए * * के लिए * जांच करेगा। अर्थात। वे कुछ अन्य कंटेनर के साथ अन्यथा करेंगे जो आप करेंगे: अस्तित्व की जांच करें। व्यक्तिगत रूप से, मैं सेट के साथ तब तक जाऊंगा जब तक आप जानबूझकर किसी और चीज को मैपिंग नहीं कर लेते। – WhozCraig
क्या डेटा हमेशा सॉर्ट किया जाता है? क्योंकि ऐसा लगता है कि आप [std :: अद्वितीय] (http://msdn.microsoft.com/en-us/library/9f5eztca (v = vs.100) .aspx), नहीं एक नए कंटेनर चाहते –