目录
一、讲一下C++的STL
二、vector list异同⭐⭐
三、vector的底层实现⭐⭐
四、vector和deque的区别 ⭐⭐
五、deque和queue的区别⭐⭐
六、为什么list里面还要再定义一个sort函数⭐
七、STL底层数据结构实现⭐
八、利用迭代器删除元素会发生什么?⭐⭐⭐⭐
九、map是如何实现的,查找效率是多少⭐⭐⭐
十、map和unordered_map有什么区别?⭐⭐⭐
十一、for (const auto &pair : myMap) 这里的const和& 的作用是什么?⭐⭐
十二、几种模板插入的时间复杂度 ⭐⭐⭐⭐
十三、容器和适配器有什么区别?⭐⭐
十四、 讲一下vector动态扩展的原理?⭐
十五、Vector动态扩展时,编译器为什么不先判断一下原有空间后面的内存是否空闲,如果空闲,直接在后面的内存空间继续分配空间?⭐
十六、Unordered_map和map,unordered_set和set,分别有什么区别,它们的底层数据结构是什么?⭐⭐
十七、map和set有什么区别?⭐⭐
十八、讲一下map和set的定义 , 以及相对应的无序集合unordered_map 和 unordered_set⭐⭐
十九、prioriry_queue优先级队列的底层数据结构是什么?操作的时间复杂度是什么?⭐⭐
一、讲一下C++的STL
C++的STL(Standard Template Library,标准模板库)是C++语言的一个核心组成部分,它提供了一系列预先定义的类和函数模板,用于实现通用的、类型安全的数据结构和算法。STL极大地增强了C++的功能性和表现力,允许开发者编写高效且可重用的代码。
STL的主要组件:
- 容器(Containers):
- 提供了多种数据结构,如向量(std::vector)、列表(