03 2024 档案
摘要:目录 完整的计算机系统应该包括() A. 运算器、存储器、控制器 B. 外部设备和主机 C. 主机和应用程序 D. 配套的硬件设备和软件系统 冯诺依曼机的基本工作方式是() A. 控制流驱动方式 B. 多指令多数据流方式 C. 微程序控制方式 D. 数据流驱动方式 早期的冯诺依曼机以运算器为中心,且
阅读全文
摘要:目录概述常用函数示例示例代码使用场景说明 概述 io_uring 是 Linux 内核中实现的一个高效异步 I/O 框架,其实现原理基于事件驱动和用户空间与内核空间之间的高效数据交换。以下是 io_uring 实现原理的简要概述: 数据结构: io_uring 主要由两个环形缓冲区(rings)构成
阅读全文
摘要:目录HTTP工作原理 HTTP工作原理 浏览器向DNS服务器请求解析该URL中的域名所对应的IP地址: 当用户在浏览器地址栏输入一个URL(如www.example.com)并按下回车时,浏览器首先需要知道这个域名对应的IP地址是什么。 浏览器会检查其本地缓存(如hosts文件或之前的DNS查询缓存
阅读全文
摘要:目录 模块化软件开发是一种将软件系统划分为独立命名且可独立访问的模块的开发方法。每个模块都具有特定的功能或职责,并且可以独立地开发、测试,最后组装成完整的软件。这种方法的主要目的是降低软件系统的复杂性,提高开发效率,以及增强软件的可维护性。 在模块化软件开发中,每个模块的设计都遵循一定的原则,如高内
阅读全文
摘要:目录 !!!不要直接使用[]来操作map,否则会有意想不到的错误。尽量使用map提供的函数(count、find、insert、erase)来操作map 242. 有效的字母异位词 描述: 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 注意:若 s 和 t 中每个
阅读全文
摘要:目录 右线性文法(Right-Linear Grammar)是一种特殊的上下文无关文法,也被称为3型文法或正规文法。在这种文法中,所有的产生式都符合特定的形式。具体来说,如果G = (V_N, V_T, P, S)是一个右线性文法,那么其每一个产生式都必须是以下两种形式之一: A → αB,其中A和
阅读全文
摘要:目录产生语言 {a^n b^n | n >= 0} 的文法 产生语言 {a^n b^n | n >= 0} 的文法 要构造一个产生语言 {a^n b^n | n >= 0} 的文法,我们可以使用上下文无关文法(Context-Free Grammar, CFG)。这个语言包含所有由相同数量的连续a字
阅读全文
摘要:目录在服务器安装nginx修改配置文件后重载nginx编辑文件添加转发重载nginx 方法:nginx根据访问域名代理转发 在服务器安装nginx sudo yum install -y nginx 修改配置文件后重载nginx vim /etc/nginx/nginx.conf 编辑文件添加转发
阅读全文
摘要:目录哔哩哔哩2021校园招聘后端开发方向笔试卷 哔哩哔哩2021校园招聘后端开发方向笔试卷 1、Docker底层采用的linux隔离技术为 A epoll B cgroup C inotify D socket 参考 B. cgroup(Control Groups) Control Groups(
阅读全文
摘要:在C++中,你可以使用互斥锁(mutex)和条件变量(condition variable)来实现一个简单的限流器(流控)以及线程。下面是一个简单的例子,它创建了一个限流器类,该类允许一定数量的线程同时访问某个资源。 #include <iostream> #include <thread> #in
阅读全文
摘要:目录基本结构抛出异常异常处理的流程注意事项常见的标准异常类型示例 在C++中,try和catch是异常处理机制的关键字。异常处理是一种处理程序中特殊情况(即异常)的机制,这些情况通常在程序正常运行时不会发生,但一旦发生就需要特殊处理。 基本结构 异常处理的基本结构如下: try { // 尝试执行的
阅读全文
摘要:目录1. 介绍一下volatile关键字2. C++中的内联函数和宏的区别?3. 自己实现一个堆栈 C++实现 + 模板4. 函数后面加const的作用是什么?5. 纯虚函数和虚函数的区别?6. 抽象类和接口区别?7. malloc和calloc的区别?8. C++中的default关键字9. lo
阅读全文
摘要:目录 常见面试题答案 介绍一下volatile关键字 C++中的内联函数和宏的区别? 自己实现一个堆栈 C++实现 + 模板 函数后面加const的作用是什么? 纯虚函数和虚函数的区别? 抽象类和接口区别? malloc和calloc的区别? C++中的default关键字 lock_guard和u
阅读全文
摘要:目录C++中如何声明二维vectormap初始化和遍历isalpha、isspace、isdigit、ispunctset容器的性质unordered_set C++中如何声明二维vector 在C++中,你可以使用嵌套的std::vector来声明一个二维的vector。每个元素本身是一个std:
阅读全文
摘要:目录基本概念使用方法Qt5 中的新语法总结示例 在 C++ 中使用 Qt 框架时,信号和槽(Signals and Slots)是一个非常重要的机制,用于实现对象之间的通信。这个机制是 Qt 特有的,并且在许多方面优于传统的回调函数方法。信号和槽提供了一种灵活、安全且类型安全的方式来处理对象之间的事
阅读全文
摘要:目录配置全局用户名和邮箱配置仓库级别的用户名和邮箱查看配置信息修改配置信息 配置全局用户名和邮箱 在 Git 中,可以配置全局的用户名和邮箱,这样在每一次提交时都会使用这些信息。 git config --g
阅读全文
摘要:目录find ./ -type f -size +102400k find ./ -type f -size +102400k find ./ -type f -size +102400k find: 这是一个命令行工具,用于在目录树中搜索和定位文件的列表。 ./: 这指定了find命令应该从哪里开
阅读全文
摘要:目录 在编译原理中,运行时存储分配是一个重要概念,涉及到程序在运行时如何分配和管理内存。程序在执行期间需要存储各种数据,包括变量、常量、程序代码等,而这些数据需要被妥善地安排在内存中以便程序能够正确、高效地访问它们。 运行时存储分配策略主要分为静态存储分配和动态存储分配两种。 静态存储分配:这种分配
阅读全文
摘要:目录符号表符号表条目信息符号表的建立 符号表 编译原理中的符号表是一种重要的数据结构,它在编译器或解释器的工作过程中发挥着关键作用。符号表主要用于存储源代码中各种标识符的信息,包括变量、函数名、数组名、类型名等。每个标识符在符号表中都有一个对应的条目,记录了该标识符的属性,如数据类型、作用域、存储地
阅读全文
摘要:目录计算一系列数的和getline函数stringstream的常见用法stringstream分割字符串的标志字符串排序cin.ignore() 计算一系列数的和 这段代码假设输入是格式良好的,即每行都包含至少一个整数,并且整数之间由空格分隔 输入例子: 1 2 3 4 5 0 0 0 0 0 输
阅读全文
摘要:使用go install安装依赖出错,提示连接超时 go: golang.org/x/tools/gopls@latest: module golang.org/x/tools/gopls: Get "https://proxy.golang.org/golang.org/x/tools/gopls
阅读全文
摘要:目录中间代码生成三地址码 中间代码生成 中间代码生成(Intermediate Code Generation)是编译器设计中的一个关键阶段,它介于前端(负责词法分析、语法分析和语义分析)和后端(负责代码优化和目标代码生成)之间。在这个阶段,编译器将源程序(通常是高级语言编写的)转换成一种中间表示形
阅读全文
摘要:目录1 go语言结构2 变量的声明 1 go语言结构 Go语言(又称Golang)是一种静态类型的、编译型的编程语言,由Google开发。Go语言的结构清晰简洁,旨在提高编程效率和代码可读性。以下是Go语言的一些基本结构: 包(Packages) 在Go语言中,代码被组织成包。包是Go程序的基本构建
阅读全文
摘要:目录top_downbottom_up 语法分析的任务:识别句子,确定句子的类型 对于不同类型的语句,后续的语义分析器将执行不同的语义动作 语法分析技术分类 (前提:CFG无二义性) top_down bottom_up top_down LL1(文法) top_down步骤 消除歧义--无二义性
阅读全文
摘要:软件设计架构模式在软件工程中起着至关重要的作用,它们为开发者提供了一种高层次的结构和组织方式,以确保软件系统的可维护性、可扩展性和灵活性。以下是一些常见的软件设计架构模式: 分层架构(Layered Architecture):这是最常见的架构模式之一,通过将系统划分为多个层次或层级,每层负责特定的
阅读全文
摘要:目录语义分析主要步骤 语义分析 编译原理中的语义分析是编译过程的一个重要阶段,它紧随语法分析之后进行。语义分析的主要任务是检查源程序在语法上正确之后,是否也具有正确的意义,即是否符合语言的语义规则。 与语法分析不同,语法分析关注的是程序的语法结构是否正确,而语义分析则关注程序的实际含义。语法分析构建
阅读全文
摘要:软件工程开发模式有多种,以下是一些常见的模式: 瀑布模型(Waterfall Model):这是一种线性的软件开发过程,它按照一系列有序的阶段进行,每个阶段都有明确的任务和输出。在瀑布模型中,设计、需求分析、编码、测试和部署等阶段是顺序进行的,每个阶段完成后才能进入下一个阶段。 迭代模型(Itera
阅读全文
摘要:参考 1. 安装MySQL sudo apt-get install mysql-client-core-8.0 sudo apt-get install mysql-server # 安装 MySQL 数据库 sudo apt-get install libmysqlclient-dev # 安装
阅读全文
摘要:目录1. 创建数据库2. 删除数据库3. 使用数据库4. 创建表5. 删除表6. 插入数据7. 查询数据8. 更新数据9. 删除数据10. 连接两个或多个表11. 排序数据12. 限制返回的数据数量13. 创建索引14. 删除索引15. 创建主键16. 删除主键17. 创建外键18. 删除外键 1.
阅读全文
摘要:目录简介MYSQL结构体MYSQL_RESmysql_initmysql_real_connectmysql_closemysql_querymysql_real_querymysql_store_resultmysql_use_resultmysql_fetch_rowmysql_fetch_le
阅读全文
摘要:目录语法制导翻译属性文法带有继承属性的SDD带有综合属性的SDDS-属性定义(S-SDD)L-属性定义(L-SDD)SDD的求值顺序将S-SDD转换为SDT将L-SDD转换为SDT在非递归的预测分析过程中进行语义翻译在递归的预测分析过程中进行语义翻译在LR分析过程中进行语义翻译 语法制导翻译 语法制
阅读全文
摘要:目录LALR(1)算法 LALR(1)算法 LALR(1)算法是编译原理中的一种语法分析算法,它属于自下而上的分析方法,是基于LR(1)算法的改进。LALR(1)算法通过合并LR(1)项目集中的同心集来减少状态数量,从而解决LR(1)算法中可能出现的状态空间爆炸问题。 在LALR(1)算法中,首先构
阅读全文
摘要:博客园基本美化之Cnblogs-Theme-SimpleMemory 博客园 SimpleMemory 超好看博客皮肤设置 博客园主题配置 博客园数学公式(转) 在线公式编辑器
阅读全文
摘要:目录卡码网设计模式专题 卡码网设计模式专题 https://kamacoder.com/designpattern.php
阅读全文
摘要:代码结构(before)
编译测试文件
执行测试文件
lcov收集代码覆盖率
genhtml生成代码覆盖率报告
覆盖率报告
阅读全文
摘要:目录1 什么是数据库事务?2 数据库事务的特性?3 什么是脏读,幻读,不可重复读?4 事务的隔离级别和四级封锁协议?5 什么是数据库索引?索引的优缺点?6 数据库中的binlog是什么7 数据库中的redolog是什么?8 为什么MySQL索引要使用B+树,而不是B树或者红黑树?9 MySQL中有哪
阅读全文
摘要:目录1. 安装CMake2. 创建CMakeLists.txt文件3. 配置项目4. 构建项目5. 运行程序6. 调试和测试(可选)7. 安装和打包(可选) 在C++工程中,有多种方式可以构建项目,但CMake是其中一个非常流行和强大的跨平台构建工具。以下是使用CMake构建C++工程的基本步骤:
阅读全文
摘要:目录 CMake是一个跨平台的构建系统,它使用一个名为CMakeLists.txt的文件来描述构建过程。下面是一个简单的CMakeLists.txt文件的示例,以及一些基本的CMake命令和语法的解释。 CMakeLists.txt 示例: # 设置CMake的最小版本要求 cmake_minimu
阅读全文
摘要:目录文件系统的IO操作一、阻塞I/O(BIO)二、非阻塞I/O(NIO)三、信号驱动I/O四、异步IO五、I/O多路复用 文件系统的IO操作 在Linux中,以及大多数现代操作系统中,文件系统的IO操作通常是通过缓存IO来完成的。这种设计主要是为了提高IO性能,减少直接对磁盘的访问次数,并通过页缓存
阅读全文
摘要:目录selectpollepollepoll中的阻塞和非阻塞行为的设定时机epoll可读和可写是什么意思用户程序和内核程序的视角优质文章 select select() 是 Unix/Linux 系统中的一个系统调用,用于监视多个文件描述符的状态变化,从而得知哪些文件描述符是可读、可写或有异常待处理
阅读全文
摘要:目录数据库连接池SqlConnPool 类SqlConnRAII 类 数据库连接池 数据库连接池(Database Connection Pool)是一种用于管理和共享数据库连接的技术,旨在解决应用程序在高并发场景下频繁创建和销毁数据库连接所带来的性能问题和资源浪费。当应用程序启动或初始化时,数据库
阅读全文
摘要:目录类结构概述主要特性总结 Log 类是一个用于日志记录的C++类,其设计具有以下特点和功能: 类结构概述 类成员变量: path_: 日志文件存储路径。 suffix_: 日志文件后缀名。 MAX_LINES_: 每个日志文件允许的最大行数。 lineCount_: 当前日志文件已写的行数。 to
阅读全文
摘要:std::chrono 是 C++ 标准库中的一个模块,用于测量时间点和持续时间。它提供了多种时钟(clock)类型、时间点(time_point)类型、持续时间(duration)类型以及相关的函数和操作符,使得开发者能够在不同的精度和语义需求下,以一致的方式处理和操作时间。 主要组件 时钟(Cl
阅读全文
摘要:目录简介头文件和命名空间类型别名TimerNode 结构体HeapTimer 类使用方式注意事项 简介 定义了一个基于最小堆(Min Heap)的定时器类HeapTimer,用于管理一组定时任务。每个定时任务都包含一个ID、一个超时时间戳和一个回调函数。当达到定时任务的超时时间时,相应的回调函数会被
阅读全文
摘要:目录概念示例 概念 代理模式是一种常用的结构型设计模式,它提供了一种将对象与它的职责进行解耦的方式。代理模式主要涉及两个角色:代理(Proxy)和真实对象(Real Object)。代理对象接收客户端的请求,并在必要时将请求转发给真实对象。这种设计模式主要用于以下几种情况: 远程代理:为一个对象在不
阅读全文