मानते हुए तत्वों की गणना करना मेरे पास एक एसटीएल set <int> s
और int x
है, मैं में x
से कम तत्वों की संख्या कैसे गिन सकता हूं?सी ++ सेट: मान
मैं O(log n)
(या समान; O(n)
) से उचित रूप से बेहतर कुछ भी मांग रहा हूं;
मुझे पहले से ही std::distance(s.begin(), s.lower_bound(x))
पता है, लेकिन यह O(n)
है, मुझे विश्वास है, क्योंकि set
एस यादृच्छिक-पहुंच नहीं हैं।
आप मानक सी ++ सेट के साथ ऐसा नहीं कर सकते हैं। –
क्यों एक बाइनरी खोज पेड़ का उपयोग नहीं करते हैं जो ऑर्डर आंकड़ों के इन प्रकारों का समर्थन करता है? यदि यह लाल-काला बीएसटी है, तो यह सबसे खराब मामले में भी लॉग (एन) प्रदर्शन की गारंटी देगा। – angelatlarge
@EvgenyKluev एक सहायक डेटा-संरचना के साथ भी नहीं जो एक साथ अद्यतन किया जा सकता है? – Chris