के लिए एक सी ++ 11 में std :: सूची के तत्वों को मिटाना संभव है, मैं प्रत्येक लूप के लिए नए सी ++ 11 का उपयोग सूची के सभी तत्वों पर पुनरावृत्त करने और प्रमाण तत्वों को मिटाने के लिए करना चाहता हूं। उदाहरण के लिएक्या प्रत्येक लूप
std::list<int> myList;
myList.push_back(1);
myList.push_back(13);
myList.push_back(9);
myList.push_back(4);
for(int element : myList) {
if(element > 5) {
//Do something with the element
//erase the element
}else{
//Do something else with the element
}
}
यह प्रत्येक पाश के लिए उपयोग कर यह करने के लिए या मैं इस हासिल करने के लिए iterators के लिए वापस जाने की क्या ज़रूरत है संभव है?
आप remove_if/मिटा का उपयोग क्यों नहीं कर सकते? –
या सिर्फ 'सूची :: remove_if', कोई इटरेटर आवश्यक नहीं है। –
@ कार्तिकट और @ बेंजामिन लिंडले: क्षमा करें, मैंने अपने प्रश्न में उल्लेख नहीं किया। मैं उन तत्वों के साथ कुछ सामान करना चाहता हूं जो इस शर्त को पूरा करते हैं और अन्य सभी के साथ भी। मैं शायद इसे 'list :: remove_if' द्वारा उपयोग किए गए पूर्वानुमान फ़ंक्शन में डाल सकता हूं, लेकिन मुझे लगता है कि यह बहुत अच्छा नहीं है। प्रसंस्करण की प्रकृति के आधार पर – Haatschii