您的位置:首页 > 其它

std::map, std::multimap, std::tr1::unordered_map 区别 - 笔记本 - 博客频道 - CSDN.NET

2013-03-28 15:09 781 查看
std::map, std::multimap, std::tr1::unordered_map 区别 - 笔记本 - 博客频道 - CSDN.NET

std::map, std::multimap, std::tr1::unordered_map 区别

分类: C/C++ 2012-02-20 15:25 399人阅读 评论(0) 收藏 举报treetablemap和multimap都是基于binary tree的东西,区别是:
map中一个key只能存在一个,multimap中则可以存在多个key相同的value。
unordered_map是我们常说的hash_map,它的key也是唯一的,
所以你应该还会看到一个叫做unordered_multimap的东西。

std::set std::multiset std::map std::multimap
这几个东西都是基于binary tree的,具体地说是红黑树。

boost::unordered_set boost::unordered_multiset boost::unordered_map boost::unordered_multimap
这几个东西都是基于我们常说的 hash_table 的。

map和multimap在插入数据的时候会根据key自动排序,
而unordered_map和unordered_multimap则不会自动根据key排序。

因此在插入的时候map和multimap相对效率要低一些。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐