自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(156)
  • 收藏
  • 关注

原创 【Lua】第二篇:打印函数和注释

【代码】【Lua】第二篇:打印函数和注释。

2024-06-30 06:32:21 258

原创 【Lua】第三篇:基本变量类型介绍

Lua中一共有如下8中变量类型:nilnumberstringboolean-- Lua中可以直接使用没有初始化的变量,它的值和数据类型都是nil。

2024-06-30 06:31:49 381

原创 【Lua】第一篇:在Linux系统中安装搭建lua5.4.1环境

目录文件下,然后编译和安装Lua环境,最终编译结果保存在:src/lua、src/luac中.输入如下命令,即可在当前目录中完成安装包的解压,解压完成后,会生成一个。PS:其他版本的安装包如下,可自行选择安装其他版本。输入以下命令即可在当前目录下,远程下载安装包。的目录文件,里面是lua配置相关的文件.

2024-06-30 06:31:23 277

原创 云服务器Ubuntu系统的vim-plus(youcompleteme)完整安装

PS:需要在那个用户下配置vim-plus,就到那个用户下执行代码。

2024-06-09 13:59:30 519 1

原创 【C++11】常见智能指针总结

内存泄漏指因为疏忽或错误造成程序未释放已经不再使用的内存的情况。内存泄漏并不是指内存在物理空间上的消失,而是我们的应用程序在分配到某块内存空间后,因为设计错误,失去了对该块内存的控制,因而造成了这块内存资源的浪费。// 1、内存申请了,但是忘记释放// 2、抛异常导致内存泄漏try//上面抛出了异常,导致 delete[] 没有执行内存泄漏分类堆内存泄漏(Heap Leak)

2024-05-06 10:12:41 592

原创 【网络】UDP协议

UDP(User Datagram Protocol)是一种无连接的传输层协议,它提供了一种简单的、不可靠的数据传输服务。UDP 提供了不面向连接的通信,且不对传送的数据报进行可靠的保证,适用于一次传送少量的数据,不适用于传输大量的数据。

2024-04-30 10:31:14 1280 1

原创 【网络】HTTP协议

urlencode工具HTTP 即超文本传输协议(Hypertext Transfer Protocol)超文本:在互联网早期的时候,我们输入的信息只能保存在本地,无法和其他电脑进行交互。我们保存的信息通常都以文本即简单字符串的形式存在,此时的文本是一种能够被计算机解析的有意义的二进制数据包。

2024-04-25 17:42:14 770 1

原创 【C++11】异常机制

异常是一种处理错误的方式:当一个函数发现自己无法处理的错误时就可以抛出异常,让这个函数的直接或间接调用者去处理这个错误。throw:当问题出现时,程序会抛出一个异常(可以是任意类型的对象)。这是通过使用 throw 关键字来完成的。try:try 块中的代码标识“将被激活的特定异常”,它后面通常跟着一个或多个 catch 块。catch:在您想要处理问题的地方,通过异常处理程序捕获异常,catch 关键字用于捕获异常,可以有多个 catch 进行捕获。

2024-04-03 16:57:55 747

原创 【C++11】包装器和bind

包装器是个类模板,它的定义在头文件 functional 中下面看看具体的示例:也就是说,在 function 的模板列表中,第一个参数是返回值的类型,随后在括号里依次传入形参的类型;而后在赋值的时候,只需要让其等于已经定义过的可调用对象,这样就算包装完成了,最后我们可以使用这个包装好的对象来代替之前的可调用对象,去执行它们的功能。

2024-03-10 17:38:57 885

原创 【C++11】lambda 表达式

捕捉列表。该列表总是出现在 lambda 表达式的开始位置,它是 lambda 表达式的标识。编译器根据 [ ] 来判断接下来的代码是否为 lambda 表达式,捕捉列表能够捕捉上文作用区中的变量供 lambda 表达式使用。:参数列表。与普通函数的参数列表一致(可以指定参数是传值还是传引用,或者是否是 const),如果不需要参数传递,则可以连同括号一起省略。mutable。

2024-03-10 16:49:46 911

原创 【Qt】开发环境搭建

C++ 编译器:比如 gcc/g++、cl.exe、mingw 等Qt SKD:即 Qt 的软件开发工具包,在 Windows 版本的 Qt SDK 里就已经内置了 C++ 的编译器(内置版本的编译器是 mingw,相当于是个 Windows 版本的 gcc/g++,要是想用 VS 内置的 cl.exe 作为编译器,也不是不行,但需要配置很多额外的东西,容易出错)需要一个 Qt 的集成开发环境(IDE)

2024-03-07 19:56:18 1883

原创 【Qt】初识Qt

既然 Qt 是用来进行客户端开发的,那我们就要了解什么是客户端客户端:直接和客户交互的程序,如 Chrome、Steam、qq音乐等 APP服务器:站在客户端背后的男人,用来j具体完成用户提出的服务虽然大部分的客户端程序,是需要有背后的服务器来做支持的,但是确实也有些程序,是不需要服务器的,这样的程序(比如画图板,计算器…)同样也是直接和客户打交道,也可以称为 “客户端程序”。命令行/终端界面(TUI),这个一般是给专业开发人员用的图形化界面(GUI),这个是给普通用户使用的。

2024-03-06 07:53:47 1063

原创 【算法】递归、搜索与回溯专题

递归就是函数自己调用自己。

2023-12-12 20:41:00 1298

原创 【算法】栈和队列专题

【代码】【题目】栈和队列专题。

2023-12-04 20:37:10 585

原创 【笔记】Clion 中运行 C/C++11 之 CMakeLists.txt 的配置

该文章记录第一次使用 Clion 时,对 CMakeLists 的配置,使其能够运行 C/C++11 的代码。

2023-12-04 10:01:50 3561

原创 【算法】链表相关算法题

同时遍历两个链表,取 val 小的那个节点尾插到新链表中。

2023-12-02 13:55:13 900

原创 【算法】经典算法题合集

题目解析算法原理代码编写2. 复写零算法原理代码编写3. 快乐数算法原理代码编写4. 盛最多水的容器算法原理代码编写5. 有效三角形的个数算法原理代码编写6. 查找总价格为目标值的两个商品算法原理代码编写7. 三数之和算法原理代码编写8. 四数之和算法原理代码编写专题二:滑动窗口1. 长度最小的子数组算法原理代码编写2. 无重复字符的最长字串算法原理代码编写3. 最大连续1的个数 III算法原理代码编写

2023-11-23 19:43:10 768

原创 【C++11】函数的可变参数模板

下面就是一个基本可变参数的函数模板/*- Args是一个模板参数包- args是一个函数形参参数包- 声明一个参数包 Args...args,这个参数包中可以包含0到任意个模板参数*/{}上面的参数 args 前面有省略号,所以它就是一个可变模版参数,我们把带省略号的参数称为“参数包”,它里面包含了0到N(N>=0)个模版参数。我们可以实例化上面的函数模板:传入任意类型、数量的参数{}int main()// 1、向参数包传入一个整型参数// 2、传入一个整型和一个字符。

2023-10-22 21:23:37 161

原创 【C++】单例模式

单例模式是属于设计模式的一种,那什么是设计模式呢?设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。为什么会产生设计模式这样的东西呢?就像人类历史发展会产生兵法一样。最开始部落之间打仗时都是人拼人的对砍;后来春秋战国时期,七国之间经常打仗,就发现打仗也是有套路的,后来孙子就总结出了《孙子兵法》。孙子兵法就类似于一种打仗的“设计模式”。使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。设计模式使代码编写真正工程化;

2023-09-29 10:59:49 567

原创 【C++】特殊类设计

拷贝只会放生在两个场景中:拷贝构造函数以及赋值运算符重载,因此想要让一个类禁止拷贝,只需让该类不能调用拷贝构造函数以及赋值运算符重载即可。:将基类的构造函数私有化,这样派生类中就调不到基类的构造函数,也就无法继承。:通过 final 关键字修饰基类,表示该类不能被继承。函数,只需将该函数屏蔽掉即可。因为 new 在底层调用。

2023-09-28 17:37:31 156

原创 【Python】OJ 常用函数

需要引入 math 包:import math。

2023-09-21 21:49:50 200

原创 【记录】Python 之于 C/C++ 区别

记录本人在 Python 上经常写错的一些地方(C/C++ 写多了,再写 Python 有点切换不过来)

2023-09-21 20:23:52 317

原创 【算法】动态规划题目总结

所以想求跳到第n级台阶有几种方法的话,我们只需知道跳到第 n-1、n-2 和 n-3 台阶时各自有几种方法,然后把它们相加起来即可。观察公式可以看到,如果要求第 i 个泰波那切数的话,我们只需知道前 i-1、i-2、i-3 的值即可。初始化:dp[n-1] = cost[n-1]、dp[n-2] = cost[n-2]状态表示:dp[i] 表示从i位置出发,到达楼顶,此时的最小花费。返回值:min(dp[0], dp[1])PS:计算时需要注意取模。

2023-09-16 17:45:54 696

原创 【Python】文件

电影(.mp4)歌曲(.mp3)图片(.jpg)文本(.txt)表格(.xlsx)我们知道冯诺依曼体系结构包括:输入输出设备、存储器、运算器和处理器。内存:变量就是存储在内存中硬盘:文件就是存储在硬盘中内存的空间更小,硬盘的空间更大内存访问更快,硬盘访问更慢内存成本更高,硬盘成本更低内存的数据易丢失,硬盘的数据能持久化存储通过上下文管理器方式去打开、操作文件,我们可以不去担心文件最终是否忘了关闭了,从而导致资源泄露。Python:上下文管理器C++:智能指针。

2023-07-04 17:31:11 764

原创 【Python】字典

补充说明:在 C++ 或 Java 中,哈希表里键值对的存储是无序的(相对于 Python),但在 Python 中不一样,Python 做了特殊的处理,能保证遍历出来的顺序和插入的顺序一致。字典是哈希表结果,所以它的增删查改操作效率是非常高的(常数级),而遍历的效率则要差一点。对于字典来说,使用 in 或者 [ ] 来获取 vlaue,都是非常高效的,因为字典背后使用了哈希表这个数据结构。不论字典中有多少元素,增删查改操作都是固定时间的,不会因为元素多了,操作就慢了。函数,通过这个函数,可以给每一个。

2023-07-01 11:24:07 461

原创 【Python】列表和元组

我们知道变量就是内存空间,它用来表示和存储数据。如果代码中需要表示的数据个数比较少,我们直接创建多个变量即可:num1 = 10num2 = 10num3 = 10但是有的时候,代码中需要表示的数据特别多,甚至也不知道具体要表示多少个数据。这个时候,就需要用到列表和元组了,它们类似于其他编程语言中的“数组”。就像我们去超市买辣条,如果就只是买一两根辣条,那咱们可以直接拿着辣条就走了。但是如果一次买个十根八根的,这个时候用手拿就不好拿,超市老板就会给我们个袋子。

2023-06-29 23:15:01 2816

原创 【JavaSE】 封装

基本规则在文件的最上方加上一个 package 语句指定该代码放在哪个包中。包名需要尽量指定成唯一的名字,通常会用公司的域名的颠倒形式(例如 com.luojj.demo1 )。包名要和代码路径相匹配。例如创建 com.luojj.demo1 的包,那么会存在一个对应的路径 com/luojj/demo1 来存储代码。如果一个类没有 package 语句,则该类会被放到一个默认包中。操作步骤在 IDEA 中先新建一个包:右键 src -> 新建 -> 包在弹出的对话框中输入包名,例如。

2023-06-08 15:17:32 670

原创 【JavaSE】类和对象

类是实体的抽象,主要描述该实体具有哪些属性(外观尺寸等)、哪些功能(用来干啥),描述完成后就可以用来供计算机识别了。比如:人,在 Java 中可以将其看成是一个类属性:名字、性别、年龄、身高、体重…功能:吃饭、睡觉、打豆豆…在 java 中定义类时需要用到class关键字,具体语法如下:class为定义类的关键字,ClassName为类的名字(采用大驼峰),{}中为类的主体。类中的变量是用来描述类的,称之为类的属性、字段或者成员变量。类中的函数主要说明类具有哪些功能,称为成员函数。

2023-06-01 21:02:47 526

原创 【C语言】负数取模、取余

如果a和d是两个自然数,d非零,可以证明存在两个整数 q 和 r,满足 a = q*d + r ,且0 ≤ |r| < |d|。其中,q 被称为商,r 被称为余数。可以看到,在不同语言中计算同一个表达式,负数“取模”结果是不同的。所以在对其商进行取整的时候,向0取整和向-∞方向取整的值都一样,这样子的话:取模的值 = 取余的值。经过上面的例子,我们已经知道了取模(余)的本质是要先计算出商是多少,而商的值取决于商的取整规则。取决于除法计算的时候,取整规则。同符号数据相除,得到的商,一定是正数,即大于0!

2023-05-16 11:37:21 1590

原创 【Java】数组

补充说明第一、二种定义方式本质是一样的,只不过第一种简化少写了new 类型[]第三种定义方式规定了元素个数之后就不能再初始化给值,默认元素的值为0其实数组也可以写成:int arr[ ] = {1, 2, 3};这样就和 C 语言一样了。但是我们还是更推荐写成 int[] arr 的形式,显示说明 int 和 [ ] 是一个整体。三种写法中,最经常用到的是第一种写法。// 列数写不写都可以。

2023-05-10 21:51:13 481

原创 【C语言】深入理解注释

复杂的函数中,会有很多分支、循环的嵌套,如果它们的行数也有很多的话,我们在阅读的时候容易搞混,不知道哪个循环或分支从哪里开始或者是从哪里结束。我们知道一个源文件要变成可执行程序的话,首先要经过预处理,预处理阶段完成的任务包括:头文件展开、宏替换、条件编译、去掉注释。,因为 / 会优先与 * 结合作为一个注释符号。正确的写法应该是在 / 后面加上一个空格或者对 *p 加上一个括号。所以建议在分支语句、循环语句结束之后加上注释,这样方便区分各分支或循环体。下面C风格注释的使用是错误的,

2023-05-06 17:02:52 455

原创 【关键字】typedef 使用总结

对一般类型进行重命名对结构体类型进行重命名(常用)对指针进行重命名对复杂结构进行重命名(比如数组)

2023-05-06 12:42:51 1586

原创 【软件测试】测试分类

软件只是一种工具,软件与人的信息交流是通过界面来进行的,界面是软件与用户交流最直接的一层,界面的设计决定了用户对我们设计的软件的第一印象。比如安装软件的界面的外观,在什么场合使用恰当的对话框等。系统非正常运行的时间可能是由于硬件,软件,网络故障或任何其他因素(如断电)造成的,这些因素能让系统停止工作,或者连接中断不能被访问,或者性能急剧降低导致不能使用软件现有的服务等。解决办法是首先要对产品的性能需求进行分析,然后基于系统的性能需求和系统架构,完成性能测试的设计和执行,最后要进行持续的性能调优。

2023-05-03 13:30:01 783

原创 【C++】位运算类题目总结

去统计所有数的每一位比特位上一共有多少个1,统计结果 count 的每一个元素的值一定是 3n,如果把这个只出现一次的数字也给统计进去,那么 count 的每一个元素的值一定是3n 或 3n+1,根据 count 的每一个元素的值去模3,来还原出只那个出现一次的那个数字。1 & 0 = 0 —> 1 + 0 = 1 (当前位的值不进位)0 & 0 = 0 —> 0 + 0 = 0 (当前位的值不进位)0 ^ 0 = 0 —> 0 + 0 = 0 (当前位值为0)0异或任何数得到任何数,相同的数异或得0。

2023-04-30 16:34:17 815

原创 【C语言】struct结构体

在C中,结构体内只能存放各种类型的变量,不能存函数:像上面这样就是声明了一个结构体,此时的相当于一个类型名。补充:C 和 C++ 中定义结构体变量的区别在 C 中使用结构体去定义变量时,需要在结构体名称前加上 struct 关键字。在 C++ 中使用结构体去定义变量时,可以不加 struct 关键字在 c99 中有明确的规定允许结构体中最后一个数组大小是未知的。char b;//或者int arr[0];struct T t;

2023-04-29 11:43:36 13386 1

原创 【C语言】大小写字母判断、转化函数总结

函数的功能是把大写的英文字母转换为小写的英文字母,如果转化成功则放回小写字母的ASCLL码,否则返回原字符的ASCLL码。函数用来判断一个字符是否为小写字母(‘a’ ~ ‘z’),是则输出非零,否则输出零。函数用来判断一个字符是否为大写字母(‘A’ ~ ‘Z’),是则输出非零,否则输出零。函数用于判断字符是否为数字字符(‘0’ ~ ‘9’),是则输出非零,否则输出零。函数用来判断一个字符是否为字母,如果是字母则返回非零,否则返回零。函数用来判断一个字符是否为数字或字母,是则输出非零,否则输出零。

2023-04-27 11:36:31 3079

原创 【软件测试】测试用例的设计

现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。该方法可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,是测试用例更容易理解和执行。典型的应用是是用业务流把各个孤立的功能点串起来,为测试人员建立整体业务感觉,从而避免陷入功能细节忽视业务流程要点的错误倾向。

2023-04-26 23:37:18 1295

原创 【关键字】volatile 使用总结

volatile用来修饰变量,告知编译器不要对这个变量进行优化,每次要用到这个变量时都必须从内存中读取它的值。看下面一段代码:在 C/C++ 中被 const 修饰的变量已经是一个常量了,这时它具有替换的作用,编译器在编译代码的时候,在程序中看到对常量中的内容读取时,会直接使用常量中的内容替换常量。

2023-04-18 11:23:01 167

原创 【关键字】const 使用总结

PS:在 C/C++ 中被 const 修饰的变量已经是一个常量了,这时它具有替换的作用,编译器在编译代码的时候,在程序中看到对常量中的内容读取时,会直接使用常量中的内容替换常量。在设计函数形参时,不论是传值还是传址,如果函数内部不修改形参的值的话,最好给形参加上 const。那么const修饰的变量,意义何在?被 const 修饰的变量具有常属性,这里的常属性指的是变量的值不能被修改。指针变量在相互赋值(传递地址)时,

2023-04-18 10:32:21 262

原创 【C语言】void 和 void* 类型

任何平台、任何编译器,都是可以定义 void* 类型的指针变量的。使用 sizeof 计算 void* 的大小:可以发现 void* 的大小和其他类型指针变量的大小一样,都是4个字节。

2023-04-14 19:20:21 1030

空空如也

空空如也

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

TA关注的人

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