मैं std::map
कंटेनर ऑब्जेक्ट को दूसरे स्थान पर ले जाना चाहता हूं। सरलतम रूप में:एक एसटीएल कंटेनर ऑब्जेक्ट को किसी अन्य ऑब्जेक्ट में कैसे कॉपी/कॉपी करें जब उसका मान प्रतिलिपि बनाने योग्य नहीं है उदा। std :: thread
#include<map>
#include<thread>
#include<vector>
using namespace std;
int main()
{
map<void*, vector<thread>> m1, m2;
// m1 is updated
m1.insert(m2.begin(), m2.end()); // <--- problem here
m2.clear(); // not required anymore
}
हालांकि यह error के एक पृष्ठ देता है:
error: use of deleted function ‘std::thread::thread(const std::thread&)’
यह कैसे पूरा करने के लिए?
ठीक है, आप धागे कॉपी नहीं कर सकते। मेरे पास एकमात्र सुझाव है 'नक्शा <शून्य *, वेक्टर >> '(या' नक्शा <शून्य *, shared_ptr <वेक्टर >> ', जो भी अधिक उपयुक्त लगता है)। –
Wintermute
जो आप पूछ रहे हैं वह वास्तव में समझ में नहीं आता है - धागे की प्रतिलिपि बनाने का क्या अर्थ है? क्या आप इसके बजाय इसे स्थानांतरित करना चाहते हैं? – Cameron
@ कैमरॉन, हां वास्तव में यह चल रहा है। उसके बाद मैं 'm2.clear()' चलाऊंगा। – iammilind