我所知道的STL
STL 主要是为我们提供了丰富的容器和算法,以至于我们在设计程序的时候只用考虑一些更为复杂的结构,比如树状结构,除此之外就是设计的问题。另外,STL作为一个开放的源码库,良好的泛型结构设计,高效的算法实现都为开发者提供了很好的参考。但是,正因为STL的灵活性,以及高效性,使得对STL的使用和了解也不算是很容易,我在平时的工作中也深有体会,因此希望能够系统总结一下STL的基本使用方法,以及分析其部分实现,借以提高程序设计能力。
1. 什么是STL?
1)STL是一套很好的框架,最核心的部件包括:容器,迭代器和算法
2)容器包括两大类:a)序列型:vector, deque, list; b)关联型:set, multiset, map, multimap
3) 迭代器是一个“可遍历STL容器内全部或部分元素的”对象。按照功能不同可分为五类:input, output, forward,双向迭代器,随机迭代器。作用:提供遍历该聚合类型的借口,而不暴露该类型的实现。
2. STL中的容器
2.1 什么时候使用vector
Vector 的特点:
1)支持运行时加入新的元素,但是在任意位置插入元素效率较低,因为vector的元素是存放在一段连续的内存中,以提高随机访问的效率。但如果你需要大量在任意位置插入元素,则最好用List,因为List采用的链表来管理内部元素。
2) 不提供巨大的操作集,如sort(), find(), max(), min();而将这些通用的操作交给泛型算法提供。
Vector 中如何存储类类型?
2.2 map<string, string>是什么意思?
当String作为Key时,map内部是如何计算Key的值的呢?
3. STL中的String类
4. STL中的迭代器
为什么要使用迭代器?
在STL中,迭代器属于某一个容器类,比如vector<string>::Iterator iter=vect.begin()
迭代器(Iterator)的实现
5. STL中的算法
搜索(search):
排序(sorting):
删除(deletion):
算术(numberic):
关系(relational):
生成(generation):
参考
1) C++ Primer
本文深入探讨了STL(标准模板库)的核心组件——容器、迭代器和算法,并重点介绍了vector和map等容器的特性及应用场景,同时概述了STL字符串类及迭代器的使用方法。
——综述&spm=1001.2101.3001.5002&articleId=3269472&d=1&t=3&u=012c2ba03fdb4066b94e95836d9fddcd)
852

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



