首页 > 其他 > 详细

#include <boost/unordered_set.hpp>

时间:2016-08-14 10:16:38      阅读:185      评论:0      收藏:0      [点我收藏+]

 

boost.unordered在C++标准容器std::set,std::multiset,std::map和std::multimap的基础上多实现了四个容器:boost::unordered_set,boost::unordered_multiset,boost::unordered_map和boost::unordered_multimap。那些名字很相似的容器之间并没有什么不同,甚至还提供了相同的接口。在很多情况下,替换这两种容器(std和boost)对你的应用不会造成任何影响。

 

小结:它里面的库与原有C++标准库中的map、set等相对应,只是内部数据结构改红黑树为hash表来实现,虽然会使得对象的存储空间增大不少,但是查找的平均复杂度却由O(logN)变成O(1),大大提升查找效率。对于需要频繁进行索引查找的应用来说,是极好的选择(当然你还需要考虑效费比,主要是存储空间)。

 

 1 #include <iostream>
 2 #include <boost/unordered_set.hpp>
 3 
 4 void main()
 5 {
 6     boost::unordered_set<std::string>myhashset;
 7 
 8     myhashset.insert("ABC");
 9     myhashset.insert("DEF");
10     myhashset.insert("GHI");
11 
12     for (auto ib = myhashset.begin(); ib != myhashset.end(); ib++)
13     {
14         std::cout << *ib << std::endl;
15     }
16 
17     std::cout << (myhashset.find("GHI") != myhashset.end()) << std::endl;//如果查找成功,返回1,否则返回0
18 }

 

#include <boost/unordered_set.hpp>

原文:http://www.cnblogs.com/denggelin/p/5769567.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!