3 - 6 测试程序-各种容器实例
1 测试程序、辅助函数
输入基本类型、输入对象;比较两个long、两个string等不等
2 array的使用:
计算时间的方法clock_t; array.data()传回整个数组在内存中的地址;qsort()进行排序 + bsearch()进行查找,如果是乱的,只能用顺序查找;
3 vector的使用
注意,都有namespace;
vector的空间是2倍数,2,4,8,16的增长;size真正元素的个数,capacity两倍增长。从另一个地方找到2倍的空间,把元素一个个copy过去。
push_back为啥用try和catch,怕空间不够。如果10亿呢?挖不到内存,就会bad_alloc异常。c++标准库有100多个算法
1)find,没有排序吗,返回指针;
2)sort + bsearch:反而比find要慢!也许sort本身就很慢
4 list
list有个max_size()、deque也有max_size()
list容器里面有自己的sort(),有自己的,用自己的
5 forward_list,单向列表
单向链表没有size
6 gnuc的list:
7 deque:
先跳过
8 stack(一个deque涵盖了stack,容器的adapter)
push、pop、top
9 queue(一个deque涵盖了queue, 容器的adapter)
push、pop,方向不一样
终于:容器的adapter,第六大类
为什么stack和queue没有iterator:如果有的话,就可以改变队列中间的值,这样就破坏了先进后出和先进先出的了。
10 multiset
使用insert,会插入到该插入的位置
这里竟然用了两个find:自己的find和全局的find,为什么可以用两个?
10 multimap
用key来找。multiset不可以用[],注意pair。不可以用[]
pair.first, pair.second
11 unordered_multiset
篮子的个数可能比元素还要多。如果元素的个数大于等于篮子,元素个数就要扩充2倍。
load_factor() 是什么意思
12 unordered_multimap
13 set(不能重复)
所以是32768个数字
14 map(不能重复)
gnuc:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义