我想製作一個std列表,該列表將包含一個包含唯一指針的類的列表。我不斷收到一個錯誤,說試圖引用一個已刪除的函數。如何製作一個包含唯一指針的類的std列表
據我所知,問題是唯一的指針沒有賦值運算符,列表試圖調用它,但我無法找出解決方法。
這裏是保存指針類代碼:
class ptr_hold
{
public:
ptr_hold(std::list<int>& _lst);
std::list<int>* get_list();
private:
std::unique_ptr<std::list<int>> num_list;
};
ptr_hold::ptr_hold(std::list<int>& _lst)
{
num_list = std::unique_ptr<std::list<int>>(new std::list<int>(_lst));
}
這裏試圖做分配新建分配FY示例代碼:
list<int> lst;
for (int i = 0; i < 5; i++)
{
lst.push_back(i);
}
ptr_hold ph = ptr_hold(lst);
list<ptr_hold> ph_list;
ph_list.push_back(ph); //error
ph_list.push_back(move(ph)); //error
如何處理呢?
'ph_list.emplace_back(lst);' – Brian
其實,'ph_list.push_back(move(ph));'對我來說工作得很好。但'emplace_back'更好。 – Brian