c++八股5

发布时间:2024年01月18日
  1. TCP与UDP,HTTP的区别:
    ○ TCP (Transmission Control Protocol) 是面向连接的、可靠的传输层协议。它提供数据包按序到达、错误检测和重传机制,确保数据完整性和顺序性,但相对UDP来说有更高的开销。
    ○ UDP (User Datagram Protocol) 是无连接的传输层协议,不保证数据包的顺序或可靠性,但传输速度快且延迟低,适用于实时应用如视频会议、在线游戏等场景,其中数据丢失可接受或通过上层协议处理。
    ○ HTTP (Hypertext Transfer Protocol) 是应用层协议,默认基于TCP,主要用于万维网的数据通信,包括网页请求和响应。HTTP定义了客户端(如浏览器)与服务器之间交换数据的标准格式。

  2. STL在项目中的应用与原理组成: STL(Standard Template Library,标准模板库)是C++中一组强大的容器类、算法和迭代器的集合。在项目中,STL被广泛应用以简化数据结构管理和算法实现,例如:
    ○ 容器:std::vector用于动态数组;std::list用于双向链表;std::map用于关联数组(键值对)等,这些容器可用于存储和管理项目中的各种数据类型。
    ○ 算法:std::sort进行排序;std::find查找元素;std::copy复制数据等,可以方便地操作容器中的元素,无需手动编写循环逻辑。
    ○ 迭代器:作为容器和算法之间的桥梁,允许算法透明地作用于不同的容器之上,提供了统一的访问接口。

  3. 项目中举例说明完成的任务(假设示例): 在一个网络服务项目中,使用std::unordered_map来快速存储和检索用户的会话信息,其内部哈希表结构提供了O(1)平均时间复杂度的存取性能。同时,利用std::vector维护用户消息队列,并用std::deque处理先进先出的消息广播。在需要优化数据排序时,调用std::sort函数根据特定条件对数据进行排序。

  4. TCP拥塞控制原理: TCP拥塞控制是为了防止过多的数据注入到网络中,导致网络资源耗尽而无法正常传输数据。它主要通过四个算法阶段实现:
    ○ 慢启动(Slow Start):当连接刚建立或之前出现丢包时,拥塞窗口(cwnd)从1开始指数级增长,直到达到阈值或发生丢包事件。
    ○ 拥塞避免(Congestion Avoidance):当窗口达到一定的阈值后,窗口大小按照线性规律增长,每次往返时间内增加1/cwnd。
    ○ 快重传(Fast Retransmit):如果收到连续三个重复ACK,认为某个分组可能已丢失,立即重新发送未确认的数据包,而不必等待重传定时器超时。
    ○ 快恢复(Fast Recovery):在快重传之后,进入快恢复状态,调整拥塞窗口大小,然后回到拥塞避免阶段。

  5. Linux基础命令: (仅列举部分)
    ○ ls:列出目录内容
    ○ cd:切换工作目录
    ○ mkdir:创建目录
    ○ touch:创建空文件或更新文件时间戳
    ○ cat / more / less:查看文件内容
    ○ rm:删除文件或目录
    ○ cp:复制文件或目录
    ○ mv:移动或重命名文件或目录

  6. Vim分屏命令:
    ○ :sp [filename] 或 :split:水平分割屏幕并打开新文件
    ○ :vsp [filename] 或 :vsplit:垂直分割屏幕并打开新文件
    ○ Ctrl-w + hjkl:在不同窗口间切换(h左、j下、k上、l右)
    ○ Ctrl-w + + 或 -:增大或减小当前窗口的高度
    ○ Ctrl-w + _:最大化当前窗口的高度
    ○ :q:关闭当前窗口(如果该窗口是唯一打开的,则退出Vim)

  7. 对实时性的理解: 实时性通常是指系统能够及时响应外部事件并在规定的时间内完成处理任务的能力。对于实时系统而言,它强调的是响应时间和处理结果的确定性。例如,在实时操作系统中,关键任务必须在预设的时间内完成,否则可能导致系统功能失效或产生严重的后果。实时性分为硬实时和软实时两种:
    ○ 硬实时:要求严格满足截止时间,否则将导致系统崩溃或安全问题。
    ○ 软实时:尽可能在指定时间内完成任务,即使偶尔错过截止时间也不会造成灾难性影响,但仍可能降低系统服务质量。

文章来源:https://blog.csdn.net/beidideshu/article/details/135658601
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。