- 博客(10)
- 收藏
- 关注
原创 【C++ 005】栈与队列的基础理论
队列是先进先出;queue栈是先进后出。stack1.栈栈是以底层容器完成其所有的⼯作,对外提供统⼀的接⼝,底层容器是可插拔的(也就是说我们可以控制使⽤哪种容器来实现栈的功能)。提供push 和 pop 等等接⼝,所有元素必须符合先进后出规则,所以栈不提供⾛访功能,也不提供迭代器(iterator)。不像是set 或者map 提供迭代器iterator来遍历所有元素。常⽤的SGI STL,如果没有指定底层实现的话,默认是以deque为缺省情况下栈的底层结构。
2025-04-15 16:17:39
647
原创 【C++ 004】字符串的基础理论
字符串其实和数组的内容差不多,直接上题目进一步展开。反转字符串问题描述:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。示例 1:输入:s = [“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]示例 2:输入:s = [“H”,“a”,“n”,“n”,“a”,“h”]
2025-04-14 17:27:43
659
原创 【八股知识记录】C++多线程、线程池
为什么用多线程?1.进程之间切换代价比较高,线程之间切换代价比较小。2.解决CPU和IO速度不匹配问题,多线程更适合在IO切换频繁的场景3.充分利用多核CPU资源、提高程序的并发效率整体架构图什么是进程,什么是线程?进程就是运行中的程序。线程是进程中的进程。1)传递临时变量的问题x += 1;//传递临时变量t.join();return 0;
2025-04-11 21:07:02
1073
原创 【八股知识记录】网络编程基础
1.客户端向服务器发送SYN报文、初始化序列号ISN(seq=x),然后客户端进入SYN_SEND状态,等待服务器确认。即客户端向服务端发送了一个SYN请求,向服务端请求连接。2.服务端发送ACK确认服务端的SYN报文(ack=x+1),同时发出一个SYN报文,带上自己的初始化序列号(seq=y),然后服务器端进入SYN_RECV状态。即服务端发送了一个ACK+SYN的回应,表明服务端接受到了客户端的请求,并同意客户端的请求建立连接。3.客户端接收到服务端的SYN、ACK报文,ACK确认服务端的。
2025-04-10 23:14:02
848
原创 【C++ 003】哈希表的基础理论
遇到要快速判断一个元素是否出现在集合里的时候,优先考虑哈希法。注意:数组就是简单的哈希表,但是数组的⼤⼩可不是⽆限开辟的。
2025-04-09 22:48:12
600
原创 【C++ 001】数组的基础理论
数组是存放在连续内存空间上的相同的类型数据的集合。在实际操作中,数组可以退通过下标索引,进而获取得到对应下标的存储数据。注意:从上面图片可以看出有两个特点:1,下标的索引是从0开始的;2,数组的内存空间的地址是连续的。通过上述的介绍,我们可以进一步得出:在我们进行删除或者添加元素的操作时,就需要移动其他的元素的地址。原因就是数组的内存空间的地址是连续的。在C++中,需要认识到vector和array的区别,vector的底层实现是array。严格来讲vector是容器,不是数组。
2025-04-09 11:56:09
984
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人