STL

STL(standard template library)-----标准模板库

特点:

      数据结构和算法分离,不面向对象,依赖模板

优点:

     高可重用性,高性能,高移植性,跨平台

STL基于模板,内联函数的使用使得代码短小高效 

体现泛型化程序设计的思想

STL六大组件: 容器    迭代器    算法    仿函数    迭代适配器    空间适配器

容器分为:顺序容器和关联容器

顺序(序列式)容器:每个元素都有固定的位置----取决于插入时机和地点,与元素无关(vector,deque,list)

vector:动态数组管理,可随机存取元素,尾插、删除-----高效,头插、中间插入-----费时

deque:随机存取元素,头插、尾插、删除------高效,中部 ---费时

list:双向链表,不提供随机存取(按顺序走到需存取的元素,时间复杂度O(n)。在任何位置上插入、删除,动作迅速)

关联式容器:元素位置取决于特定的排序准则和插入排序无关(set、multiset、map、multimap)

set/multiset:内部数值依据其值自动排序,底层二叉树实现,

           区别:set:相同数值只出现一次    multiset:相同数值出现多次

map/multimap:map的元素是成对的键值/实值,内部依据其值自动排序  二叉树实现

           区别:map:去重    multimap:不去重

STL迭代器:

                   Iterator 按照一定顺序访问聚合对象中各个元素

作用:能够让迭代器与算法互不干扰的互相发展,最后又能无间隙的结合起来

重载 *  ,++ , == , != , = 运算符,用以操作复杂的数据结构

容器提供迭代器,常见的迭代器类型:Iterator  const_Iterator ,reverse_Iterator ,const_reverse_Iterator

数组转置(reverse(v.begin(),v.end()))

算法:函数库对数据类型的选择对其可重用性起着至关重要的作用。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值