this answer में यह उल्लेख किया गया है कि वर्णों की संख्या प्राप्त करने के लिए s.chars().count()
कर रहे स्ट्रिंग के लिए एक ओ (एन) ऑपरेशन है। सरल ASCII तारों के लिए s.len()
का उपयोग करके बाइट्स की संख्या प्राप्त करने के लिए भी काम करता है। यह सुनिश्चित करने के लिए चेक का उपयोग करते समय कि वे सभी बाइट वास्तव में ASCII हैं, यह शायद सुरक्षित है।मुझे ऑपरेशन की जटिलता कहां मिलती है?
मैं जानना चाहता हूं कि उस ऑपरेशन की जटिलता क्या है। इसे अभी भी सी में स्ट्रिंग का अंत ढूंढना पड़ सकता है जैसे कि सी और ओ (एन) हो।
मैंने इसे देखने की कोशिश की और documentation of the std::string::String
, पाया जो उचित s
के लिए लागू होता है। हालांकि यह इसकी जटिलता नहीं बताता है। स्रोत को देखते हुए यह self.vec.len()
करता है। तो हम vector docs को देखने के लिए जाते हैं और पाते हैं कि यह बस एक संग्रहित लंबाई self.len
देता है जिसका अर्थ है कि यह वास्तव में एक ओ (1) ऑपरेशन है।
हालांकि यह बहुत काम था। अब इस मामले के बारे में क्या है कि s
एक std::str है? मैंने ऐसा करने की कोशिश की लेकिन this mess में फंस गया।
क्या जंग में ऑपरेशन जटिलताओं के लिए एक अधिक आसानी से सुलभ संसाधन है?
इस तरह कुछ list for Python बहुत अच्छा होगा।
ध्यान दें कि सभी वर्ण असीसी हैं ओ (एन) बस 's.chars()। गिनती()' की तरह है, इसलिए जब तक आपको किसी अन्य कारण की जांच की आवश्यकता न हो, तो आप 's.chars () .count() '। – Jmb
जटिलताओं को सभी डेटाटाइप के लिए दस्तावेज किया जाना चाहिए। जहां वे गायब हैं, पीआर भेजने या किसी समस्या को दर्ज करने में संकोच न करें। मुझे नहीं लगता कि सभी जटिलताओं के साथ केंद्रीकृत सूची इस के लिए सही जगह है; यह केवल संग्रहों के लिए समझ में आता है, जहां आपको यह तय करने के लिए एक सिंहावलोकन की आवश्यकता है कि किस संग्रह का उपयोग करना है। –