STL与boost

待细化。。。。。。。。。。。

STL

STL是standard Template Library即标准模板库的英文缩写,

STL的代码从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器),几乎所有的代码都采用了模板类和模版函数的方式,这相比于传统的由函数和类组成的库来说提供了更好的代码重用机会。

  在C++标准中,STL被组织为下面的13个头文件<algorithm>、<deque>、<functional>、<iterator>、<vector>、<list>、<map>、<memory>、<numeric>、<queue>、<set>、<stack>和<utility>

Boost

Boost C++ 库可以提升一个 C++ 开发人员的生产力。 例如,你可以从智能指针中受益,帮助你写出更可靠的代码,或者使用某个库来开发平台独立的网络应用。

应用:

然后上程序上面测试,对于一个size大约15000的容器,大概每次循环需要进行20次FindpinweiValueInVector()函数的调用,所以在Vector中查找值的最坏的情况是时间复杂度为O(n),即进行15000*20,这还是每次的循环,当一个菜单执行完毕整整花了大概6个半小时左右,程序运行效率低下。


所以,必须要有一种查找效率较高的容器,就想到的map,map为平衡二叉树,查找效率为对数级别,时间复杂度为O(logN),查找相对来说较快,1000大小的数据最坏只需要3次就可以查找到,15000只需要4次多就可以查找到。


猜你喜欢

转载自blog.csdn.net/lyq_csdn/article/details/80554128
STL
今日推荐