STL应用(一)——综述

本文深入探讨了STL(标准模板库)的核心组件——容器、迭代器和算法,并重点介绍了vector和map等容器的特性及应用场景,同时概述了STL字符串类及迭代器的使用方法。

我所知道的STL

STL 主要是为我们提供了丰富的容器和算法,以至于我们在设计程序的时候只用考虑一些更为复杂的结构,比如树状结构,除此之外就是设计的问题。另外,STL作为一个开放的源码库,良好的泛型结构设计,高效的算法实现都为开发者提供了很好的参考。但是,正因为STL的灵活性,以及高效性,使得对STL的使用和了解也不算是很容易,我在平时的工作中也深有体会,因此希望能够系统总结一下STL的基本使用方法,以及分析其部分实现,借以提高程序设计能力。

 

1.      什么是STL

1STL是一套很好的框架,最核心的部件包括:容器,迭代器和算法

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值