c++ - best method to cast bewteen vnl_matrix<int> and vnl_matrix<double> -


सी ++ में, मेरे पास एक ऐसा वर्ग है जो vnl_matrix & lt; int & gt; इनपुट के रूप में एक vnl_matrix & lt; double & gt; क्या मेरे मैट्रिक्स के प्रत्येक तत्व को एक बार एक डबल लूप में से एक के अलावा कास्ट करने के अलावा vnl_matrix & lt; int & gt; से vnl_matrix & lt; double & gt; में डालने का एक सीधा तरीका है?

संपादित करें: एक और मैट्रिक्स के आधार पर मैट्रिक्स के निर्माता निम्न है (मैंने इसे नहीं लिखा, विवरण के लिए देखें। क्या यह "कस्ट / कास्ट" को अनुमति देने के लिए इस कन्स्ट्रक्टर को संशोधित करना संभव है

  //: एक नया मैट्रिक्स बनाता है और सभी तत्वों की प्रतिलिपि बनाता है। // हे (मी * n)। टेम्पलेट & lt; वर्ग टी & gt; vnl_matrix & lt; T & gt; :: vnl_matrix (vnl_matrix & lt; T & gt; कॉन्स्ट & amp; से): num_rows (from.num_rows), num_cols (from.num_cols) {vnl_matrix_construct_hack (); if (from.data और amp; from.data [0]) {vnl_matrix_alloc_blah (); टी const * src = from.data [0]; vcl_copy (src, src- this- & gt; num_rows * this-> gt; num_cols, this- & gt; डेटा [0]);} और {num_rows = 0; num_cols = 0; डेटा = 0;}} < / Code> 

एक दूसरे को डालने का एकमात्र तरीका है अगर आपके पास ऐसा कन्स्ट्रक्टर था:

  टेम्पलेट & lt; typename T & gt; class vnl_matrix {// रूपांतरण टेम्पलेट & lt; typename यू, typename = std :: enable_if & LT; std :: is_convertible & lt; u, टी & gt; :: मूल्य & gt; :: प्रकार & gt; Vnl_matrix (कॉन्स्ट vnl_matrix & lt; U & gt; और amp; rhs); };  

उस निर्माता, संभवतः मैट्रिक्स में सभी कोशिकाओं को एक लूप में डाल देंगे। लेकिन आपको यह जोड़ना होगा - इसके लिए कोई मूल तंत्र नहीं है इसी तरह, ध्यान दें कि vector & lt; int & gt; से vector & lt; अहस्ताक्षरित int & gt; से "कास्ट" करने का कोई रास्ता नहीं है - आपको मैन्युअल रूप से एक नया सदिश का निर्माण करना होगा


Comments

Popular posts from this blog

python - Overriding the save method in Django ModelForm -

html - CSS autoheight, but fit content to height of div -

qt - How to prevent QAudioInput from automatically boosting the master volume to 100%? -