我正在尝试决定在我的硬件中使用什么是最佳选择。 我有一个地图(我编码),它应该存储整数id作为键,并将名为fan的类的共享指针作为值:
Map<Id, shared_ptr<Fan>> Online_list;
使用shared_ptr<Fan>&
或没有引用更好?
我的作业是关于创建像Facebook一样的服务器,粉丝可以在线和离线,所以即时通讯有两个地图,一个叫Online_list
,另一个叫Offline_list
,所以当风扇断开时,我需要将他从在线列表中删除并将其添加到离线列表中。
答案 0 :(得分:1)
shared_ptr
是一种参考。带内存管理的指针。您可以存储普通shared_ptr
,因为内部引用了相同的数据(复制构造函数增量引用计数等)。
答案 1 :(得分:1)
通常最好不要将指针存储在所有中,而只是存储Fan
对象的值。拥有two
对象的Fan
事件真的有意义吗?
但是,假设您的设计是正确的,那么您应该只存储shared_ptr
按值。