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()))
算法:函数库对数据类型的选择对其可重用性起着至关重要的作用。
2534

被折叠的 条评论
为什么被折叠?



