अंतर को समझना: मिटाना बनाम हटाना
सी प्रोग्रामिंग के दायरे में, std::erase और std::remove दो हैं जब कंटेनरों को संशोधित करने की बात आती है तो अलग-अलग कार्य अलग-अलग उद्देश्यों की पूर्ति करते हैं। जबकि दोनों कार्यों का उपयोग कंटेनर से तत्वों को खत्म करने के लिए किया जा सकता है, वे अपने व्यवहार में भिन्न होते हैं। रिमूव एक एल्गोरिदम है जो तत्वों की एक श्रृंखला पर काम करता है और उन्हें कंटेनर के भीतर पुनर्व्यवस्थित करता है। यह किसी भी तत्व को सीधे नहीं हटाता है बल्कि मेल न खाने वाले तत्वों को मेल खाने वाले तत्वों के ऊपर ले जाता है। यह प्रक्रिया अनुक्रम की शुरुआत में मिलान तत्वों और अंत में गैर-मिलान तत्वों का एक समूह बनाती है।
Std::erase: तत्वों को हटाना
पर दूसरी ओर, std::erase एक फ़ंक्शन है जो एक कंटेनर से निर्दिष्ट तत्वों को हटाता है, प्रभावी ढंग से इसके आकार को कम करता है। यह तर्कों के रूप में पुनरावृत्तियों की एक श्रृंखला लेता है और उस सीमा के भीतर सभी तत्वों को हटा देता है, जिसमें हटाने के लिए चिह्नित तत्व भी शामिल हैं।
आउटपुट को समझना
प्रदान किए गए कोड उदाहरण में, निम्नलिखित अवलोकन किए जा सकते हैं:
Std::remove:
कब std::remove का उपयोग std::erase के बिना किया जाता है, यह बस तत्वों को पुनर्व्यवस्थित करता है, जिससे वेक्टर का आकार अपरिवर्तित रहता है। इसलिए, वेक्टर के माध्यम से पुनरावृत्त करने पर 2,2 का आउटपुट प्राप्त होगा। मेल खाने वाले तत्व (इस मामले में, 1 की एकल घटना) और तदनुसार वेक्टर के आकार को अपडेट करता है। परिणामस्वरूप, आउटपुट केवल 2 दिखाता है। मुहावरा:जबकि std::remove का उपयोग आमतौर पर "मिटाना-निकालना" के भाग के रूप में मिटाने के साथ किया जाता है मुहावरा," इसे स्वतंत्र रूप से भी नियोजित किया जा सकता है। यह उन परिदृश्यों में उपयोगी है जहां निष्कासन आदेश महत्वपूर्ण नहीं है और प्राथमिक लक्ष्य कंटेनर के भीतर मिलान और गैर-मिलान तत्वों को अलग करना है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3