算法设计与分析第二章STL简介及练习题

本文介绍了算法设计与分析中STL(Standard Template Library)的基础知识,包括容器如向量、双端队列、列表等,迭代器、算法如排序和搜索,以及函数对象和适配器。通过两个例题,展示了STL在解决实际问题中的应用,一个是利用map统计气球颜色,另一个是使用优先队列实现二叉树的层次遍历。
摘要由CSDN通过智能技术生成

算法设计与分析第二章STL简介

1、STL的组成
1)容器(Container)
容器类是容纳、包含一组元素或元素集合的对象;
向量(vector)
双端队列(deque)
列表(list)
集合(set)、多重集合(multiset)
映射(map)和多重映射(multimap)

2)迭代器(Iterator)
①提供访问了容器中对象的方法。(也可以用其他方法访问容器中的对象)
②迭代器就如同一个指针。事实上,C++的指针也是一种迭代器。

3)算法(Algorithm)
① 是用来操作容器中的数据的函数模板。
例如,STL用sort()来对一个vector中的数据进行排序,用find()来搜索一个list中的对象。
②函数本身与他们操作的数据的结构和类型无关,因此他们可以在从简单数组到高度复杂容器的任何数据结构上使用;

4)函数对象(Function object)
所谓函数对象(function object)是重载了函数调用操作符(funiton-call operator())的对象,函数对象的优势在于能很好的满足STL的抽象要求

5)适配器(Adaptor)
将一个class的接口转换为另一个class的接口,使得原本因接口不兼容而不能合作的class

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值