栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

STL 源码剖析之算法

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

STL 源码剖析之算法

1.用o(n)表示复杂度

2.常用容器的常用算法复杂度。

3.操作区间(前闭后开区间,这就是迭代器,一般用iterator begin,iterator end来表示)。迭代器就是一种行为类似指针的对象。

4.算法有时需要仿函数进行配合一起使用。

5.算法之排序sort

a.所有的关联容器都拥有自动排序功能,不需要sort.

b.序列容器中的stack、queue、priority_queue有特殊的出入口,不允许用户对元素排序。

c.list的迭代器属于bidirectionaliterators,不适合使用sort。

d.vector、deque的迭代器是randomaccessiterators,适合使用sort算法。vector的sort函数属于快速排序,其时间复杂度为o(NlogN),为目前已知最快的排序。

总之,我们在使用STL的排序算法时,需要根据不同的元素构造来进行合适的选择,如果都是比较简单的元素,那么适合选择vector+sort来进行排 序,对于由字符串构成的占用了比较大的空间的复杂元素,应该使用multiset。如果排序的元素的总个数比较少,那么选择任意一种都可以。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/892984.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号