1-2 好网站、6大组件、复杂度、前闭后开区间、auto&、for、容器结构和分类
STL是泛型最成功的作品,
3个极好的网站推荐:
https://cplusplus.com/
https://en.cppreference.com/w/
https://gcc.gnu.org/
2 STL分成6大部件:
容器用来放东西,放东西要占用内存,但是你不需要关注内存,用分配器解决;
算法通过迭代器来遍历容器里的数据;
仿函数适配器:相加、相减(人、石头)......
容器适配器:电脑有个适配器,
上面有两个适配器。
默认分配器 alloctor<int>
怎么初始化?查手册
count_if是算法,而不是仿函数
95%的容器都有:vi.begin()/vi.end()迭代器
3 复杂度:
n要10W、100W
4 前闭后开区间
*(c.end())是最后一个元素的下一个元素。链表空间不一定连续。
迭代器一般先指向c.begin();
5 新语法:
要修改,就用&
6 容器结构和分类
1)序列式容器
2)关联式容器:有key和value,适合快速查找,电脑:放大量资料,找东西。unordered(不定序)也是关联的。
array固定大小;vector,后面有个箭头,牵头表示可扩充;deque,连续的,两端可进可出,为什么?list,双向的;单向链表,
list比单向链表内存多;链表的查找太慢。
问题:deque是双向可进可出;queue,后进前出
set/multiset下面是二分树、红黑树来实现;set和map的区别是map是由key和value组成的;有multi和没有multi的区别是:multi的元素可以重复。
哈希表:vector + 单向链表
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义