List 作为容器引用的智能指针
我有两门课: tcp_服务器和tcp_连接 tcp_服务器有一个tcp_连接指针对象的列表,我所做的方法是将这个列表逐指针传递给tcp_连接,它将负责在销毁程序上加入并从列表中删除自己 tcp_服务器:List 作为容器引用的智能指针,list,reference,smart-pointers,unique-ptr,List,Reference,Smart Pointers,Unique Ptr,我有两门课: tcp_服务器和tcp_连接 tcp_服务器有一个tcp_连接指针对象的列表,我所做的方法是将这个列表逐指针传递给tcp_连接,它将负责在销毁程序上加入并从列表中删除自己 tcp_服务器: private: std::list<std::weak_ptr<tcp_connection>> connections; // passing reference to the tcp_connection new_connection->join(&
private:
std::list<std::weak_ptr<tcp_connection>> connections;
// passing reference to the tcp_connection
new_connection->join(&connections);
private:
std::列出连接;
//将引用传递到tcp_连接
新建连接->连接(&U);
tcp_连接:
private:
std::list<std::weak_ptr<tcp_connection>>* connections;
public
void join(std::list<std::weak_ptr<tcp_connection>>* con)
{
connections = con;
connections->push_back(shared_from_this());
}
private:
std::列表*连接;
公众的
无效连接(标准::列表*con)
{
连接=con;
连接->推回(从这个()共享);
}
嗯。在这一点上,一切都很顺利;然而,若我试图删除tcp_连接销毁程序上的连接指针,服务器就会崩溃
我试图弄乱智能指针,但我迷路了。在将tcp_服务器方法传递给JOIN之前,是否在tcp_服务器方法上创建唯一的_ptr,并将其作为引用传递给带有std::move的tcp_连接
有没有办法提高效率