Tuesday 15 April 2014

c++ - No matching member function in Map insert -


मेरे पास निम्न दो चर हैं:

  स्थिर वेक्टर & lt; map & lt; uint32_t, vector & lt; uint64_t & gt; & gt; & gt; रिश्ते; स्थैतिक मानचित्र & lt; uint64_t, मानचित्र & lt; uint32_t, vector & lt; uint64_t & gt; & gt; & gt; लेनदेन; Uint64_t key1; Uint32_t key2; Uint32_t key3; // init keys ...  

और मैं vector से संबंधों से लेनदेन कॉपी करने का प्रयास कर रहा हूं >:

  लेनदेन [key1] [key2]। Push_back (संबंध [key2] [key3]));  

लेकिन मुझे यह त्रुटि मिलती है:

  main.cpp: 175: 26: त्रुटि: 'push_back' लेन-देन [key1 ] [कुंजी 2] .push_back (संबंध [कुंजी 2] [key3])); ~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~ / एप्लिकेशन्स / एक्सकोड.एप / कॉन्ट्रैक्ट / डेवलपर / टूलकेन्स / एक्सकोड डिफॉल्ट। एक्सटकोलचैन / / यूआर / बिन /..इंड शामिल / सी ++ / वी 1 / वीक्टर: 7 00:36: नोट: उम्मीदवार का कार्य नहीं है व्यवहार्य: 'वेक्टर & lt; uint64_t & gt;' से कोई ज्ञात रूपांतरण नहीं है 1 तर्क के लिए 'const value_type' (उर्फ 'कॉन्स्ट अहस्ताक्षरित लंबे समय तक') के लिए _LIBCPP_INLINE_VISIBILITY शून्य पुश_बैक (const_reference __x); ^ / ऍप्लिकेशन्स / एक्सकोड.एप / कंटेंट / डेवलपर्स / टूलकेन्स / एक्सडडैफ़ॉल्ट। एक्सक्लचैन / यूआर / बीन /../ शामिल करें / सी ++ / वी 1 / वीक्टर: 702:36: नोट: उम्मीदवार का कार्य व्यवहार्य नहीं है: 'वेक्टर और लेफ्टिनेंट से कोई ज्ञात रूपांतरण नहीं है ; uint64_t & gt; ' पहला तर्क के लिए 'value_type' (उर्फ 'अहस्ताक्षरित लंबे समय तक') _LIBCPP_INLINE_VISIBILITY शून्य पुश_बैक (मूल्य_प्रकार & amp; __x);  

क्या हो रहा है का कोई भी विचार?

संबंध [Key2] [key3] एक वेक्टर & lt; uint64_t & gt; है, और आप इसे लेनदेन [key1] [key2] में जोड़ने का प्रयास कर रहे हैं जो कि vector & lt; uint64_t & gt;

आप वेक्टर & lt; uint64_t & gt; को एक वेक्टर & lt; uint64_t & gt; नहीं जोड़ सकते। < / P>


यदि आप पहली सामग्री को पहली वेक्टर को दूसरे से जोड़ना चाहते हैं, तो आपको इसका उपयोग करना होगा:

  ऑटो में & amp; Dst = लेनदेन [key1] [key2]; कॉन्स्ट ऑटो एंड amp; Src = संबंध [key2] [key3]; Dst.insert (dst.end (), src.begin (), src.end ());  

No comments:

Post a Comment