自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

C/C++ 数据结构与算法 Linux系统编程/Linux网络编程 MySQL数据库 计算机网络 软件测试 前端 数据库 笔试强训 实战项目 LeetCode刷题 牛客网刷题 剑指Offer 蓝桥杯/ACM竞赛 QT Git企业级组件 ProToBuf 前

C/C++ 数据结构与算法 Linux系统编程/Linux网络编程 MySQL数据库 计算机网络 软件测试 前端 数据库 笔试强训 实战项目 LeetCode刷题 牛客网刷题 剑指Offer 蓝桥杯/ACM竞赛 QT Git企业级组件 ProToBuf 前

  • 博客(117)
  • 收藏
  • 关注

原创 【C++项目实战】:基于正倒排索引的Boost搜索引擎(1)

针对boost网站没有搜索导航功能,为boost网站文档的查找提供搜索功能站内搜索:搜索的数据更垂直,数据量小类似于cplusplus.com的搜索。

2025-03-25 18:55:12 541 1

原创 【软件测试】:软件测试实战

commoncases/BlogLogin.pycases/BlogList.pycases/BlogDetail.pycases/RunCases.py1.3 将⾃动化测试补充⾄测试报告测试报告模板:

2025-03-25 18:46:05 936

原创 【C++】:C++11新特性

在2003年C++标准委员会曾经提交了一份技术勘误表(简称TC1),使得C++03这个名字已经取代了C++98称为C++11之前的最新C++标准名称。不过由于C++03(TC1)主要是对C++98标准中的漏洞进行修复,语言的核心部分则没有改动,因此人们习惯性的把两个标准合并称为C++98/03标准。从C++0x到C++11,C++标准10年磨一剑,第二个真正意义上的标准珊珊来迟。相比于。

2025-03-24 20:18:29 766

原创 【前端基础】:CSS

网页依赖的资源(图片/CSS/JS等)通常是从服务器上获取的. 如果频繁访问该网站, 那么这些外部资源就没必要反复从服务器获取. 就可以使用缓存先存起来(就是存在本地磁盘上了). 从而提高访问效率.style 标签可以放到页面任意位置. 一般放到 head 标签内. CSS 使用 /* */ 作为注释. (使用 ctrl + / 快速切换)CSS 能够对网页中元素位置的排版进行像素级精确控制, 实现美化页面的效果. 能够做到页面的样式和结构分离.缺点: 分离的还不够彻底. 尤其是 css 内容多的时候.

2025-03-17 15:17:29 744

原创 【Linux】:进程间通信

数据传输:一个进程需要将它的数据发送给另一个进程资源共享:多个进程之间共享同样的资源。通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道它的状态改变。

2025-03-13 15:28:14 831

原创 【QT】:QT图形化界面相关准备工作

例如Windows和DOS操作系统中的path环境变量,当要求系统运⾏⼀个程序⽽没有告诉它程序所在的完整路径时,系统除了在当前⽬录下⾯寻找此程序外,还会到path中指定的路径去找。在Windows上设置Qt的环境变量是为了能够在命令⾏或其他应⽤程序中直接访问Qt相关的命令和⼯具。此电脑"------>⿏标右键,“属性”------>“⾼级系统设置”------>“环境变量”注意:在关掉所有窗⼝时,⼀定要点击"确定",否则上述配置⽆效。新建"----->填⼊"bin"路径------>“确定”

2025-03-11 20:44:55 397

原创 【前端基础】:HTML

href: 必须具备, 表示点击后会跳转到哪个页面.target: 打开方式. 默认是 _self. 如果是 _blank 则用新的标签页打开链接的几种形式:外部链接: href 引用其他网站的地址内部链接: 网站内部页面之间的链接. 写相对路径即可. 在一个目录中, 先创建一个 1.html, 再创建一个 2.html空链接: 使用 # 在 href 中占位下载链接: href 对应的路径是一个文件. (可以使用 zip 文件)

2025-03-11 20:37:52 1048

原创 【前端基础】:HTML

但实际情况却并非如此,css中的像素只是一个抽象的单位,在不同的设备或不同的环境中,css中的1px所代表的设备物理像素是不同的。后来随着技术的发展,移动设备的屏幕像素密度越来越高,从iphone4开始,苹果公司便推出了所谓的Retina屏,分辨率提高了一倍,变成640x960,但屏幕尺寸却没变化,这就意味着同样大小的屏幕上,像素却多了一倍,这时,一个css像素是等于两个物理像素的。例如,在Retina屏的iphone上,devicePixelRatio的值为2,也就是说1个css像素相当于2个物理像素。

2025-03-11 14:25:06 680 9

原创 【软件测试开发】:软件测试常用函数1.0(C++)

web⾃动化测试的操作核⼼是能够找到⻚⾯对应的元素,然后才能对元素进⾏具体的操作。常⻅的元素定位⽅式⾮常多,如id,classname,tagname,xpath,cssSelector常⽤的主要由cssSelector和xpath。

2025-03-10 19:54:25 897 6

原创 【软件测试开发】:软件测试开发认识篇

测试往往是产品质量的最后的把关者由于测试⼯作成效很难衡量测试⽤例执⾏bug数⽬的多少都⽆法说明产品的质量是否合格虽然在敏捷模型中团队中每个⼈都需要对产品质量负责,但是产品的测试质量是跟测试⼈员那密切相关的。所以,责任感是最重要的测试必备素质之⼀压⼒,测试⼯作者,特别是属于互联⽹⾏业需要能够抗住各种压⼒⾼频⾯试题为什么⾛测试岗位⽽不⾛开发岗位?回答思路:从岗位⼯作性质分析+个⼈性格/爱好+个⼈职业规划三个⽅⾯阐述1)个⼈兴趣爱好:从性格和兴趣出发,测试⼯作需要测试⼈员具备良好的耐⼼、细⼼,接触了

2025-01-11 14:29:12 1390 1

原创 【LeetCode】:删除回文子数组【困难】

class Solution {public: // 思考:能否用滚动数组进行优化 int minimumMoves(vector& arr) { // 定义状态dp[i][j]为i-j的最小步数 int n = arr.size(); vector dp(n, vector(n, 1e9 + 7)); // 可以把这 1 次理解为一种 最小操作单位 或者 // 基

2025-01-11 14:06:36 399 12

原创 【LeetCode】:稀疏相似度【困难】

这道题是关于计算文档相似度的问题,具体是稀疏相似度。以下是详细的解题思路:### 1. 理解题目要求- 给定一系列文档,每个文档由一个包含不同整数的数组表示(可假定每个整数代表一个单词)。- 需要计算每对文档的相似度,相似度定义为两个文档的交集元素个数除以并集元素个数。- 只输出相似度大于0的文档对,结果以特定格式返回,包括文档对的较小id、较大id以及相似度(精确到小数点后4位)。### 2. 解题方法- 可以使用两层循环遍历所有文档对,对于每对文档,计算它们的交集和并集元素个数,进而得到

2025-01-06 12:27:28 1009 4

原创 【LeetCode】:最长乘积等价子数组【简单】

最大公约数:指两个或多个整数共有约数中最大的一个。例如,12 和 18 的公约数有 1、2、3、6,其中最大公约数是 6。最小公倍数:指两个或多个整数公有的倍数中最小的一个。例如,12 和 18 的公倍数有 36、72、108 等,其中最小公倍数是 36。

2025-01-05 20:46:06 1022

原创 【LeetCode】:解数独【困难】

通过以上思路和方法,就可以编写程序来解决数独问题啦。在实际编程中,还需要注意代码的细节和边界情况的处理,以确保程序的正确性和高效性。

2025-01-05 20:40:16 788

原创 【Docker】:Docker命令及平台基本使用方法

比如把docker-centos-httpd.tar镜像上传到linux上,就需要用到==docker load -i ==命令。地址:https://cr.console.aliyun.com的控制台,使用支付宝账号登录,左侧加速器帮助页面会为你显示独立的加速地址,这个加速地址每个人的都不同。注意,如果这里报错,TLS handshake timeout,那就是网络原因导致超时,尝试多pull几次。拉去之后我们要如何看到我们下载下来的镜像呢,这里我们就需要学习一个新命令。可以看到此地址,代表配置成功。

2025-01-02 16:14:30 1066 1

原创 【QT】:QT图形化界面概述

多语⾔⽀持:VisualStudio⽀持多种编程语⾔,包括C++、C#、VisualBasic、F#、Python、qmake:qmake是⼀个构建⼯具(buildtool),⽤于⾃动⽣成makefile⽂件。Qbs:Qbs(QtBuildSuite:Qt构建套件)同qmake、CMake⼀样都是构建⼯具。Windows桌⾯应⽤程序、Web应⽤程序、移动应⽤程序、游戏等。配置信息:CONFIG+=c++11(使⽤c++11的特性) CONFIG⽤来告诉qmake关于应⽤程序的配。③:构建套件选择器。

2025-01-01 11:44:43 1328 13

原创 【ProToBuf】:ProToBuf+安装

ProtoBuf 下载地址:https://github.com/protocolbuffers/protobuf/releases。在这⾥我们希望⽀持全部语⾔,所以选择protobuf-all-21.11.zip,右键将下载链接复制出来。出现以上错误的原因是test的模块⾥⾯有⾮常多的测试⽤例,这些⽤例对服务器环境要求特别严格,需。到此,需要你回忆⼀下在执⾏configure时,如果当时选择了第⼀种执⾏⽅式,也就是。可以不⽤下载最新版本,课件以v21.11为例,具体的下载根据⾃⼰电脑情况选择。

2025-01-01 11:22:46 834

原创 【Docker】:Docker容器使用

docker-ce:docker 的开源版本,CE指Community Edition。同年7月,微软、Red Hat、IBM、Docker、CoreOS、 Mesosphere和Saltstack 等。2015 年 6 月 22 日,由 Docker 公司牵头,CoreOS、Google、RedHat 等公司共同宣。在 Docker 1.12 及更高版本中,Swarm 模式与 Docker 引擎集成,为 Docker 容器提供。chroot 系统调用是在 1979 年开发第 7 版 Unix期间引入的。

2025-01-01 11:05:00 1054

原创 【蓝桥杯】:蓝桥杯之路径之谜

通过以上思路和算法思想,可以尝试编写代码来解决这道路径谜题。

2024-12-31 16:17:00 1421 8

原创 【Docker】:Docker容器技术

Greenplum、TiDB、Postgresql XC、HAWQ等,商用的如南大通用的GBase、kubernetes,简称 K8s,是用8代替名字中间的8个字符“ubernete”而成的缩写。为不同的服务器(比如性能不同)赋予不同的权。目前最流行的容器化技术是Docker,最流行的容器管理服务是Kubernetes(K8S),应。一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是。

2024-12-31 16:04:16 1119 2

原创 【Redis】:初识Redis

redis-server 是 Redis 服务器程序,其余的⼏个例如:redis-check-aof、redis-check-rdb、redissentinel 也都是 redis-server 的软链接。redis-check-aof 是修复 AOF ⽂件⽤的⼯具,同理 redischeck-rdb 是修复 RDB ⽂件的⼯具,redis-sentinel 是 Redis 哨兵程序。假如现在有⼈问 Redis 的作者都有谁在使⽤ Redis,我想他可以开句玩笑的回答:还有谁不使⽤。

2024-12-29 11:19:57 620 1

原创 【Linux】:Linux套接字Socket网络编程

IPv4和IPv6的地址格式定义在netinet/in.h中,IPv4地址用sockaddr_in结构体表示,包括16位地址类型, 16。处是程序的通用性, 可以接收IPv4, IPv6, 以及UNIX Domain Socket各种类型的sockaddr结构体指针做为参数。IPv4、IPv6地址类型分别定义为常数AF_INET、AF_INET6. 这样,只要取得某种sockaddr结构体的首地址,不需要知道具体是哪种类型的sockaddr结构体,就可以根据地址类型字段确定结构体中的内容.

2024-12-29 11:03:18 754

原创 【Linux】:Linux网络协议

址不是真实的 mac 地址, 可能会冲突;IP 协议有两个版本, IPv4 和 IPv6. 我们整个的课程, 凡是提到 IP 协议, 没有特殊说明的, 默认都是指 IPv4。• IP 地址在整个路由过程中,一直不变(目前,我们只能这样说明,后面在修正) • Mac 地址一直在变。上面的内容,我们只是懂了一些基本概念,还是达不到我们的目标,下面我们再次重。• 首先,即便是单机,你的计算机内部,其实都是存在协议的,比如:其他设备和。• 截止到目前,我们还没接触过任何协议,但是如何朴素的理解协议,我们已经可。

2024-12-29 10:55:35 893

原创 【Linux】:Linux网络编程基础

TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完。信的七层协议结构,尽管在实际应用中,TCP/IP协议族更为普遍,但OSI模型仍。信的七层协议结构,尽管在实际应用中,TCP/IP协议族更为普遍,但OSI模型仍。OSI模型定义了网络通。是构成TCP/IP协议族的协议)的志愿组织,通过RFC发布新的或者取代老的协。是构成TCP/IP协议族的协议)的志愿组织,通过RFC发布新的或者取代老的协。TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇.

2024-12-29 10:45:55 1098 9

原创 【Linux】:信号与信号量以及信号捕捉与处理(为多线程和网络做准备)

信号的定义:信号是 Linux 操作系统中用于进程间通信、处理异常等情况的一种机制。它是由操作系统向一个进程或者线程发送的一种异步通知,用于通知该进程或线程某种事件已经发生,需要做出相应的处理信号的作用:进程间通信:进程可以通过向其他进程发送信号的方式进行通信,例如某个进程在完成了某项工作之后,可以向另一个进程发送 SIGUSR1 信号,通知其进行下一步的操作。

2024-04-27 15:03:16 1361 12

原创 【C++】:手撕红黑树(红黑树的模拟实现)

/ 节点的颜色// 红黑树节点的定义{}// 节点的左孩子// 节点的右孩子// 节点的双亲(红黑树需要旋转,为了实现简单给出该字段)// 节点的值域// 节点的颜色。

2024-04-27 14:13:49 1006 30

原创 【C++】之哈希——unordered系列关联式容器/HashTable的底层结构/HashTable的模拟实现/哈希的应用/基于Hash和位图的海量数据处理面试题

在此文章之前呢 我分享一下我学习C++中的STL源码的心得 最开始学习的是vector和string 这一部分实现起来比较简单 具体可以去看看我前面写的博客 然后就是stack和queue这部分序列式就是所谓的站和队列 这部分我没有以博客的形式呈现出来 具体大家可以去参考一下stack和queue的STL源码 然后就是学的list容器 这部分也比较简单 大家感兴趣可以去看看我写的博客 也是写到了的 然后就是deque双端队列这部分大家可以去参考侯捷老师的STL源码剖析shizhi 我下面也会给大家把图片和

2024-03-31 18:05:12 1412 41

原创 【C++】:STL序列式容器list源码剖析

总的来说:环形双向链表特点:底层是使用链表实现的,支持双向顺序访问在list中任何位置进行插入和删除的速度都很快不支持随机访问,为了访问一个元素,必须遍历整个容器与其他容器相比,额外内存开销大设计目的:令容器在任何位置进行插入和删除都很快何时使用:容器需要不断地在中间插入或删除元素无论删除还是增加,list的迭代器、引用、指针都不会失效。

2024-01-19 09:53:53 1109 31

原创 【Linux】:Linux中的Git分支管理

本章开始介绍 Git 的杀⼿级功能之⼀(注意是之⼀,也就是后⾯还有之⼆,之三……):分⽀。分⽀就是科幻电影⾥⾯的平⾏宇宙,当你正在电脑前努⼒学习 C++ 的时候,另⼀个你正在另⼀个平⾏宇宙⾥努⼒学习 JAVA如果两个平⾏宇宙互不⼲扰,那对现在的你也没啥影响。不过,在某个时间点,两个平⾏宇宙合并了,结果,你既学会了 C++ ⼜学会了 JAVA!在版本回退⾥,你已经知道,每次提交,Git都把它们串成⼀条时间线,这条时间线就可以理解为是⼀个分⽀。

2024-01-12 21:22:40 1660 24

原创 【C++】:C++中的STL序列式容器vector源码剖析

public://vector的迭代器是原生指标...//等同于int* ivite;//等同于Shape* svite;

2024-01-12 20:58:26 1415 22

原创 【C++】:STL源码剖析之vector类容器的底层模拟实现

如果没有备用空间了,就扩充空间(重新配置、搬移数据、释放原空间)。注意 : 将数据拷贝到新空间,仍然不能用memcpy函数,因为对于需要深拷贝的自定义类型,使用memcpy函数以后,新开辟空间里的元素和原空间里的元素所指向的内存空间是一样的,当旧空间被释放时,会调用自定义类型的析构函数,从而使得新开辟空间里的元素指向的内存空间也被释放掉了。1). 新开辟一块空间,若容器为空,将_start,_finish指向新开辟空间的首元素地址, _endofstorage指向新开辟空间的最后一个元素下一个位置。

2023-12-08 16:19:07 2458 103

原创 【C++】:STL中的string类的增删查改的底层模拟实现

本篇博客仅仅实现存储字符(串)的string同时由于C++string库设计的不合理,我仅实现一些最常见的增删查改接口接下来给出的接口都是基于以下框架:private: char* _str;//思考如何不用const size_t _size; size_t _capacity; //这样写可以 const static size_t string::npos = -1; //下面这种写法也可以->和上述写法产生矛盾 const static size_t str

2023-11-22 16:40:44 2241 142

原创 【C++】:STL——标准模板库介绍 || string类

STL(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。

2023-11-14 22:55:02 1813 92

原创 【C++】:内存管理 || 泛型编程 || 函数模板 || 类模板 || 内存泄漏(后期结合智能指针详讲)

operator new与operator delete函数(重点)new和delete是用户进行动态内存申请和释放的操作符,operator new 和operator delete是系统提供的全局函数,new在底层调用operator new全局函数来申请空间,delete在底层通过operator delete全局函数来释放空间_free_dbg。

2023-11-10 10:19:41 485 58

原创 【Linux】:git基本操作_添加文件_两种场景_查看.git文件 || git修改文件 || 版本回退

🎯在包含.git的⽬录下新建⼀个ReadMe⽂件,我们可以使⽤ git add 命令可以将⽂件添加到暂存区:• 添加⼀个或多个⽂件到暂存区: git add [file1] [file2] …• 添加指定⽬录到暂存区,包括⼦⽬录: git add [dir]• 添加当前⽬录下的所有⽂件改动到暂存区: git add .再使⽤ git commit 命令将暂存区内容添加到本地仓库中:• 提交暂存区全部内容到本地仓库中: git commit -m “message”

2023-11-08 19:36:33 768 40

原创 【C++】:内存管理:C++内存分布 || C++中动态内存管理(new || delete)

【说明】🃏1. 栈又叫堆栈–非静态局部变量/函数参数/返回值等等,栈是向下增长的🃏2. 内存映射段是高效的I/O映射方式,用于装载一个共享的动态内存库。用户可使用系统接口创建共享共享内存,做进程间通信。(Linux课程如果没学到这块,现在只需要了解一下)🃏3. 堆用于程序运行时动态内存分配,堆是可以上增长的。🃏4. 数据段–存储全局数据和静态数据。

2023-11-08 11:42:04 428 79

原创 【Linux】:初识git || centos下安装git || 创建本地仓库 || 配置本地仓库 || 认识工作区/暂存区(索引)以及版本库

Git 原理与使用课程⽬标• 技术⽬标:掌握Git企业级应⽤,深刻理解Git操作过程与操作原理,理解⼯作区,暂存区,版本库的含义• 技术⽬标:掌握Git版本管理,⾃由进⾏版本回退、撤销、修改等Git操作⽅式与背后操作原理• 技术⽬标:掌握Git分⽀管理,从分⽀创建,切换,合并,删除的整个⽣命周期,灵活进⾏各种场景下的分⽀管理,学习常⻅分⽀管理策略• 技术⽬标:掌握Git远程仓库与本地仓库,结合版本管理与分⽀管理,做到基于分⽀级的个⼈级开发。

2023-11-07 14:05:05 3533 81

原创 【Linux】:使用git命令行 || 在github创建项目 || Linux第一个小程序——进度条(进阶版本)

在本章开始之前还是先给大家分享一张图片这是C++的笔试题 感兴趣的同学可以去试一试 有难度的哟 也可以直接在牛客网直接搜索这几道题目哈好了今天我们正式进入我们的正题部分。

2023-11-06 14:02:01 4939 73

原创 【Linux】:Linux项目自动化构建工具——make/Makefile || Linux第一个小程序——进度条(简单版本)

在开始本章之前 我们需要回顾一下上节课的函数的动静态库的优缺点动态库的优点: 比较节省资源(这里说的资源不仅仅是磁盘资源 也包括网络资源 内存资源等等),不会出现太多的重复代码缺点:对库的依赖性较强,一旦库丢失 那么所有使用这个库的程序就无法运行,具体理解见上一篇Linux博客静态库的优点:不依赖库,同类型平台中都可以直接使用缺点:可执行程序体积比较大 浪费资源。

2023-11-05 21:28:46 1251 60

原创 【C++】:类和对象(下):explicit || 再谈构造函数 || static成员 || 友元 || 内部类 || 匿名对象 || 拷贝对象时的编译器优化问题 || 再次理解类和对象

🔫类和对象(下篇)🔫【本节目标】🔫1. 再谈构造函数🔫2. Static成员🔫3. 友元🔫4. 内部类🔫5.匿名对象🔫6.拷贝对象时的一些编译器优化🔫7. 再次理解类和对象。

2023-11-03 17:26:02 1325 95

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除