c++ - STL: how to overload operator= for <vector>? -


सरल उदाहरण है:

  #include & lt; vector & gt; Int main () {वेक्टर & lt; int & gt; veci; वेक्टर के & lt; डबल & gt; vecd; के लिए (इंट आई = 0; आई & lt; 10; ++ i) {veci.push_back (i); vecd.push_back (i); } Vecd = veci; // & lt; - समस्या]  

मुझे पता होना चाहिए कि यह बात कैसे ओवरलोड ऑपरेटर = है ताकि मैं इस तरह असाइन कर सकता हूं:

  वेक्टर के & lt; डबल & gt; = वेक्टर & lt; int & gt ;;  

मैंने अभी बहुत सारे तरीकों की कोशिश की है, लेकिन हमेशा संकलक त्रुटियों को लौट रहा है ...

क्या इस कोड को बिना इसे बदलने के लिए कोई विकल्प है ? मैं कुछ अतिरिक्त लाइनें लिख सकता हूं, लेकिन मौजूदा वाले को संपादित या हटा नहीं सकता Ty।


ठीक है, मैं देख रहा हूँ। मैं आपको एक और तरीके से पूछता हूं .. क्या इस कोड को बिना इसे बदलने के लिए कोई विकल्प है? मैं कुछ अतिरिक्त लाइनें लिख सकता हूं, लेकिन मौजूदा वाले को संपादित या हटा नहीं सकता Ty।

ऐसा आसान तरीके से क्यों नहीं करें:

  वेक्टर के & lt; डबल & gt; Vecd (veci.begin (), veci.end ());  

या:

  vecd.assign (veci.begin (), veci.end ());  

दोनों बॉक्स के बाहर समर्थित हैं:)


Comments

Popular posts from this blog

.net - C# List<T>.Find(x=>x.Rectangle.Contains(Point)) FAIL -

iphone - Smoothing a rounded stroke in Core Graphics -

c++ - QtQuick: QQmlApplicationEngine failed to load component qrc:/main.qml:23 Invalid attached object assignment -