C++ STL知识点100问

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

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

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

容器container:存储数据。

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

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

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

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

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

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

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

相关推荐
Henry Zhu1239 分钟前
C++17 `weak_from_this` 详解:让对象安全地观察自己
c++
小高00720 分钟前
🔥🔥🔥TypeScript 7 正式版来了:别只看 10 倍速度,这 4 个迁移坑更值得注意
前端·javascript·面试
众人皆醒我独醉35 分钟前
KServe:Kubernetes 原生的模型推理平台——把 vLLM/TGI/Triton 变成 Serverless
人工智能·ci/cd·面试
June`3 小时前
warp shuffle指令
c++·人工智能·算法·cuda
乱七八糟的屋子3 小时前
【C++数值计算】NumCpp超详细入门教程(纯正Numpy语法、零学习成本、C++首选科学计算库、性能压测对比)
c++·数值计算·numpy·高性能计算·科学计算·ndarray
choumin4 小时前
C程序能调用extern “C“声明的带默认参数的C++函数吗?
c语言·c++·extern c·默认参数
AmyLin_20014 小时前
PDF 色彩保真工程实践【3】上手实践:工程结构、依赖集成与一键构建运行
c++·visualstudio·pdf·zlib·vcpkg·libtiff·cmyk
并不喜欢吃鱼4 小时前
从零开始 C++------ 十六.深度拆解 C++ 智能指针:unique_ptr/shared_ptr/weak_ptr 底层模拟、内存泄漏根治
开发语言·c++
不相心 -w-4 小时前
Cmake的基础用法
linux·开发语言·c++
撑伞的鱼99374 小时前
C++开发用什么AI编程工具效果好?2026年实测横评(附选型指南)
开发语言·c++·ai编程·cursor