当前位置: 首页 > article >正文

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,是比较高效的。


http://www.kler.cn/a/400569.html

相关文章:

  • IntelliJ IDEA 2024.3(Ultimate Edition)免费化教学
  • JWT 过期后 自动刷新方案
  • 华为刷题笔记--题目索引
  • ArcGIS Pro ADCore DAML
  • 支付域——新零售支付
  • 《Django 5 By Example》阅读笔记:p645-p650
  • 基于YOLOv8深度学习的智慧农业柑橘病害识别检测系统(PyQt5界面+数据集+训练代码)
  • ISCTF 2024 web
  • aws云服务器:高可靠性和数据安全
  • 使用 Easegress 实现 Telegram 翻译机器人
  • 鸿蒙北向开发环境安装指南
  • 使用ivew-ui-plus 的Submit组件踩坑 injection “LoginInstance“ not found 记录 问题原因分析与解决方案
  • HarmonyOS 如何获取设备信息(系统、版本、网络连接状态)
  • HMSC联合物种分布模型在群落生态学中的贝叶斯统计分析应用
  • SpringBoot使用@Validated注解实现参数的验证
  • Docker中的一些常用命令
  • git根据远程分支创建本地新分支
  • 文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《基于改进容积卡尔曼滤波的含光伏配电网动态状态估计》
  • 【大语言模型】ACL2024论文-15 大型语言模型中的最佳解释推断
  • 麒麟DHCP服务的部署
  • 大数据学习16之Spark-Core
  • 商业物联网详细指南:优势与挑战
  • emerge 命令学习笔记
  • Flume1.9.0自定义拦截器
  • 跨平台WPF框架Avalonia教程 一
  • 【论文阅读】WaDec: Decompiling WebAssembly Using Large Language Model