sjfb.net
当前位置:首页 >> STL的算法 >>

STL的算法

什么是STL呢?STL就是Standard Template Library,标准模板库。这可能是一个历史上最令人兴奋的工具的最无聊的术语。从根本上说,STL是一些“容器”的集合,这些“容器”有list,vector,set,map等,STL也是算法和其他一些组件的集合。这里的“容器”和...

当你在代码中需要对一个数组排序的时候,你是喜欢用一行代码,也就是sort函数呢? 还是喜欢自己费了九牛二虎之力写了一个漏洞百出而且效率低下的几十行的排序函数呢? 结果不明自知。 算法是解决特定问题(例如排序,查找等等)的方法,方法可以...

STL是standard Template Library标准模板库的英文缩写.它包含有计算机科学领域常用的基本数据结构和基本算法.如果要对一个整形数组int a[10]按递增排序,可以使用sort(a,a+10),sort函数被包含在#include中,在MSDN中有详细的解释.

STL看起来是使用了面向对象,但实际上是大部分都是面向过程了。 STL的很多算法,就拿sort函数来说吧。 void sort(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp);只要数据结构的跌代器是随机访问的就可以使用...

自己写了个快排20行,很满意,一看STL的sort几百行长的你开始怀疑人生。 自己实现了一下list,100行!很完美,一看STL的list一千行你又开始怀疑人生。 你看着一堆的template和InputIterator起鸡毛。

#include #include #include int main(int, char*[]) { std::set s; s.insert("hello"); //ok s.insert("world"); //ok s.insert("hello"); //failed键值重复了 for(std::set::const_iterator i = s.begin(); i != s.end(); ++i) { std::cout

STL中为我们提供的最重要的两个内容是容器(vector,list等)和一系列的算法。在这些算法中有许多需要遍历容器中的所有元素,如search,sort等算法。STL的设计者希望将算法和容器分离开来,一个算法可以帮不同的容器实现功能。为此目的,STL应用...

这些函数都是被精心设计过的,肯定已经优化的非常好了。标准库的sort会根据数据量来选择使用的排序方式,你自己写的排序效率很难超过它。而且标准库算法的正确性有保证。除非有特殊的需求,否则应当尽量使用标准库提供的函数。

STL的sort在数据量不同的时候,他会自己选用不同的排序算法。比如插入,快排。这些。 下面是说对STL的sort的源码分析的,他有说到这些,你可以参考下 http://www.cnblogs.com/imAkaka/articles/2407877.html

自己写一个比较函数就可以了,作为第三个参数传到sort函数。 下面有个小例子: #include #include #include using namespace std;class AbA{public:int m_nA;int m_nB;AbA(int a, int b) : m_nA(a), m_nB(b){}};ostream& operator

网站首页 | 网站地图
All rights reserved Powered by www.sjfb.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com