Tôi muốn di chuyển an std::map
đối tượng chứa khác. Ở dạng đơn giản:Cách chắp/sao chép đối tượng chứa STL vào đối tượng khác khi giá trị của nó không được sao chép có thể xây dựng được, ví dụ: 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
}
Tuy nhiên nó mang lại cho một trang của error:
error: use of deleted function ‘std::thread::thread(const std::thread&)’
Làm thế nào để thực hiện điều này?
Vâng, bạn không thể sao chép các chủ đề. Đề nghị duy nhất tôi có là một 'bản đồ >>' (hoặc một 'bản đồ >>', tùy theo cái nào phù hợp hơn). –
Wintermute
Những gì bạn đang yêu cầu không thực sự có ý nghĩa - sao chép chuỗi có nghĩa là gì? Thay vào đó, bạn có muốn di chuyển không? – Cameron
@Cameron, có thực sự nó di chuyển. Sau đó tôi sẽ chạy 'm2.clear()'. – iammilind