मुझे std::list< std::pair<std::string,double> >
मिला है, जो मुझे पता है std::string element
के अनुसार क्रमबद्ध है।std :: जोड़ी की एक क्रमबद्ध std :: सूची को कैसे परिवर्तित करें :: std :: map
जब से मैं std::string
तत्व के आधार पर std::find_if
का एक बहुत करना चाहते हैं, मेरा मानना है कि lower_bound
और upper_bound
के साथ एक std::map<string,double,MyOwnBinaryPredicate>
अधिक पर्याप्त होगा।
तथ्य यह है कि मैं में insert
तत्वों को एक कुशल तरीके से बनाना चाहता हूं। तो मैं insert
तेज बनाने के लिए एक अतिरिक्त पुनरावर्तक का उपयोग करना चाहता हूं।
मेरा मानना है कि सबसे आसान तरीका है एक const_reverse_iterator
उपयोग करने के लिए std::list
के माध्यम से जाना और std::map
की begin()
उपयोग करने के लिए किया जाएगा।
क्या आप इसे इस तरह से करेंगे, या यह एक बुरा विचार है?
धन्यवाद! क्योंकि एक सूची < जोड़ी के लिए iterator> संगत एक मान प्रकार < X, Y> के iterators मैप करने के लिए है
std::copy(the_list.begin(),the_list.end(),std::inserter(the_map,the_map.begin()));
:
[C++] न रखें शीर्षक पर:
आप बाद में परिणामों को अपनी सूची में वापस चाहते हैं तो आप सिर्फ विपरीत कर सकता है। यही टैग है। – NullUserException
grddev और लूथर ब्लिसेट द्वारा प्रदान किए गए उत्तरों के साथ, मेरे शुरुआती सुझाव ('प्रारंभ()' का उपयोग करके, 'अंत() ') का उपयोग करने के समान ही प्रदर्शनों के बारे में है। हालांकि, दोनों संक्षिप्त हैं। मैं अपनी सादगी के लिए grddev का जवाब स्वीकार करता हूं, लेकिन मैं 'std :: inserter' को ध्यान में रखता हूं। आप सभी को धन्यवाद! – Wok