क्या एक अच्छा साफ रास्ता एक कन्वर्ट करने के लिए है std::vector<int> intVec
करने के लिए std::vector<double> doubleVec
। या, अधिक सामान्यतः, परिवर्तनीय प्रकारों के दो वैक्टर को बदलने के लिए?
क्या एक अच्छा साफ रास्ता एक कन्वर्ट करने के लिए है std::vector<int> intVec
करने के लिए std::vector<double> doubleVec
। या, अधिक सामान्यतः, परिवर्तनीय प्रकारों के दो वैक्टर को बदलने के लिए?
जवाबों:
std::vector
निर्माण रेंज निर्माता का उपयोग करें :
std::vector<int> intVec;
std::vector<double> doubleVec(intVec.begin(), intVec.end());
copy(v_int.begin(), v_int.end(), back_inserter(v_float));
याv_float.resize(v_int.size()); copy(v_int.begin(), v_int.end(), v_float.begin());
std::distance()
"यदि यह एक यादृच्छिक-पहुंच वाला पुनरावृत्ति है, तो फ़ंक्शन इसकी गणना करने के लिए ऑपरेटर- का उपयोग करता है। अन्यथा, फ़ंक्शन बार-बार वृद्धि ऑपरेटर (ऑपरेटर ++) का उपयोग करता है।" तो इस मामले में पुनरावृत्तियों को घटाकर तत्वों की मात्रा पाई जा सकती है। क्या मानक लाइब्रेरी को std का उपयोग करने के लिए लागू किया गया है: प्रारंभिक रिजर्व के लिए दूरी () एक और सवाल है, लेकिन godbolt.org/z/6mcUFh में कम से कम std: दूरी () के लिए कॉल है।
std::copy(...)
फ़ंक्शन का उपयोग कर सकते हैं ? क्या आप इसे उत्तर में जोड़ सकते हैं?