STL应用篇 联系客服

发布时间 : 星期二 文章STL应用篇更新完毕开始阅读3a18734ee518964bcf847cf8

职位描述: 招聘要求:

--本科以上学历,计算机或数学相关专业; --熟悉UNIX环境下的C/C++编程;

--熟悉Oracle、Informix数据库,有大型数据库开发经验者优先; --有银行项目经验者优先; --能出差,能适应较强工作压力

主要职责:

1. 负责公司新产品的研发和设计; 2. 负责公司现有产品的维护和升级; 3. 负责对软件进行单元测试、集成测试; 4. 负责解决开发过程中的技术问题。

岗位要求:(优秀者学历、经验等要求,可适当放宽)

1、专科及以上学历,两年以上同岗工作经验,精通或熟悉C++,能熟练使用VC,熟悉网络编程(Socket,完成端口)和UI界面(SDK,GDI,GDIPLUS)编程。

2、熟悉面向对象,STL,ATL等C++语言层面的技术。 3、熟悉多线程编程。 4、熟悉SQL编程。

5、能熟练查阅英文编程资料(如MSDN)。

6、对互联网行业充满热情和兴趣,具有优秀的学习能力。

引子

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作为Key时,map内部是如何计算Key的值的呢? 3.STL中的String类 4.STL中的迭代器

为什么要使用迭代器? 在STL中,迭代器属于某一个容器类,比如vector::Iterator iter=vect.begin() 迭代器(Iterator)的实现 5.STL中的算法 搜索(search): 排序(sorting): 删除(deletion): 算术(numberic): 关系(relational): 生成(generation):

STL应用篇

概要

STL是泛型编程(Generic Programming,GP)和C++结合的产物。STL主要由几个核心部件组成:迭代器、容器、算法、函数对象、适配器。容器即物之所属;算法是解决问题的方式;迭代器是对容器的访问逻辑的抽象,是连接算法和容器的纽带,通过添加了一种间接层的方式实现了容器和算法之间的独立。本文从应用的角度对STL的方方面面进行了简单的介绍。 关键词

STL,C++,应用,SGI,GP,泛型,迭代器,容器,算法

目 录

1. 概述 2. 基础 2.1内联 2.2函数对象 2.3函数模板 2.4类模板 3. 迭代器

3.1输入迭代器 3.2输出迭代器 3.3前向迭代器 3.4双向存取迭代器 3.5随机存取迭代器 4. 容器 4.1 共性 4.2 顺序容器 4.2.1 vector 4.2.2 list 4.2.3 deque 4.3 关联容器 4.3.1 set

4.3.2 multiset 4.3.3 map

4.3.4 multimap 4.3.5 其它

5. 算法

5.1 改变序列的算法 5.2 不改变序列的算法 5.3 排序以及相关算法 5.4 常用数字算法 6. 适配器(Adaptor) 6.1 容器适配器 6.2 迭代器适配器 6.3 函数适配器 7. 资源 参考文献