【发布时间】:2014-09-12 09:29:12
【问题描述】:
我被困在 map_of_pointers 或 map_of_stack_objects (甚至是 shared_ptrs 的地图。) 地图上的主要操作是插入/删除/搜索项目。
谁能帮我解决这个问题? 提前致谢。
回答您的问题:-
Class Cache
{
private:
A map with key as int and value as AccountDetails
public:
createitem
deleteItem
updateItem
searchItem
};
class AccountDetails
{
AccountData a; ( 20 bytes )
personalData b; ( 20 bytes )
list < positions > c ( Each position is 20 bytes )
}
我相信我已经解释得足以回答这个问题了。如果我仍然缺少某些东西,请告诉我,我会添加它。
【问题讨论】:
-
在没有更多信息的情况下无法回答,您甚至没有告诉我们这些对象是什么
-
你打算用地图做什么?你的用例是什么?这将是你的决定者。
-
@ravi089: 只需使用
map<int, AccountDetails>开头 - 几乎不可能写得这么糟糕会崩溃 - 对初学者总是有好处 - 然后切换到智能指针(或了解移动语义)稍后,如果您发现性能很差,因为在将AccountDetails对象复制到map和从map中复制出来时存在不必要的临时对象。 -
谢谢 TonyD。看来我需要为此使用 boost::shared_ptrs 的地图......我对吗?或者在使用 shared_ptr 的地图时您是否还有其他顾虑