我想为我的对象使用散列存储。这真的比std::map<std::string, Object>
更快吗?我的意思是搜索。据我所知,助推过程进行了很多优化。散列和访问
而且我不确定我的代码是否正确。搜索/插入时是否真的使用散列键?
using boost::multi_index_container;
using namespace boost::multi_index;
struct Object
{
std::string name;
Object(std::string name_): name(name_) {}
};
typedef multi_index_container<
Object,
indexed_by<
hashed_unique<
BOOST_MULTI_INDEX_MEMBER(Object, std::string, name)
>
>
> ObjectSet;
ObjectSet objects;
objects.insert(Object("test1"));
objects.insert(Object("test2"));
objects.insert(Object("test3"));
// And testing:
objects.find("test2");
钥匙数量:这只是一个例子。实际情况下有3个键。地图中的对象数量:接近500-1000。 – Ockonal 2011-04-10 14:39:33
然后我会使用多索引容器,但使用普通地图(树)而不是散列。 – 2011-04-10 15:00:11
感谢您的提示。 – Ockonal 2011-04-10 15:03:57