C++ STL知识点100问

1问:STL有哪几类,对其进行简单描述

答:STL 主要由适配器 allocator容器 container算法 algorithm,迭代器 iterator仿函数 functor5大类构成。

 适配器allocator:STL 提供了三个容器适配器:queuepriority_queuestack。这些适配器都是包装了 vector、list、deque 中某个顺序容器的包装器。注意:适配器没有提供迭 代器,也不能同时插入或删除多个元素。

容器container:存储数据。

算法algorithm:STL 算法部分主要由头文件<algorithm>组成。要使用 STL 中 的算法函数必须包含头文件。

迭代器iterator:又称 Cursor(游标)模式,用于提供一种方法顺序访问一个 聚合对象中各个元素, 而又不需暴露该对象的内部表示。或者这样说可能更容易理解: Iterator 模式是运用于聚合对象的一种模式,通过运用该模式,使得我们可以在不知道 对象内部表示的情况下,按照一定顺序(由 iterator 提供的方法)访问聚合对象中的各 个元素。

仿函数functor:仿函数(functor)又称之为函数对象(function object),其实就是重载了()操作符的 class,对象名可以像函数名一样使用。

2问:map 、set、multiset、multimap的特点

  • setmultiset会根据特定的排序准则自动将元素排序,set中元素不允许重复,multiset可以重复。

  • mapmultimap将key和value组成的pair作为元素,根据key的排序准则自动将元素排序(因为红黑树也是二叉搜索树,所以map默认是按key排序的),map中元素的key不允许重复,multimap可以重复。

  • mapset的增删改查速度为都是logn,是比较高效的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尘海折柳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值