- 博客(49)
- 收藏
- 关注
原创 论坛系统测试报告
功能测试:针对不同的功能设计测试用例,要求测试用例100%通过。界面测试:测试界面设计是否与设计文档符合。易用性测试:测试界面是否易于操作,是否具备一定的引导性,是否符合用户的行为习惯。安全测试:测试能否防止SQL注入攻击,是否保护了用户隐私安全。兼容性测试:能否在windows,macOS,Android,IOS上正常运行。弱网测试:能否在2G,3G弱网情况下正常运行。本次测试总共耗时6天,共测试出了8个bug,其中0个崩溃级,7个严重级,1个次要级。
2025-04-17 17:55:08
156
原创 C/C++的条件编译
条件编译是指在编译阶段根据某些条件来决定是否编译某段代码。这通常通过预处理指令来实现,比如#if#ifdef#ifndef#else#elif和#endif。
2025-04-05 00:01:21
402
原创 Linux makefile的一些语法
在makefile中,变量的定义和使用非常类似于编程语言中的变量。或者表示延迟赋值,变量的值在引用时才会被展开。:=表示立即赋值,变量的值在定义时就会被展开。makeSHELL:指定使用的 shell。MAKEFLAGS:传递给make的选项。定义变量:使用或定义变量,通过引用变量。注释:以开头的行是注释,用于解释代码的作用。特殊变量make提供了一些自动变量(如$@$<$^)和预定义变量(如SHELLMAKEFLAGS条件语句:使用ifeq和else。
2025-04-04 23:51:10
347
原创 Linux make 检查依赖文件更新的原理
时间戳机制make主要依靠文件的时间戳(特别是修改时间 mtime)来判断依赖文件是否有更新。比较过程make会获取目标文件和依赖文件的修改时间,并比较它们的大小。如果任何一个依赖文件的修改时间比目标文件的修改时间新,make会执行规则中的命令来重新生成目标文件。
2025-04-04 23:09:27
616
原创 Linux make与makefile 项目自动化构建工具
makemakefile:是一个包含构建规则的文本文件,定义了如何从源文件生成目标文件以及各个目标文件之间的依赖关系。make:是一个构建自动化工具,读取makefile中的规则,并根据这些规则决定哪些文件需要重新编译或构建。通过make和makefile,你可以高效地管理和构建项目,确保每次构建都是基于最新的文件状态。
2025-04-04 23:07:05
856
原创 linux gcc
预处理:准备食材,处理#include#define等指令。编译:编写食谱,将预处理后的代码转换成汇编代码。汇编:将食谱翻译成操作步骤,生成目标文件。链接:合并多个菜谱,生成最终的可执行文件。
2025-04-04 21:53:30
972
原创 C++的IO流
水从水龙头流出,通过水管流向水槽。在这个过程中,水龙头是水的源头,水槽是水的目的地,水管则是水流动的通道。类似地,在计算机科学中,流可以看作是数据从一个源头(如键盘、文件、网络)流向一个目的地(如屏幕、文件、网络)的通道。连续性:数据像水流一样连续不断地传输。方向性:数据有明确的流动方向,从源头流向目的地。缓冲:流通常会使用缓冲区来临时存储数据,以提高传输效率。在计算机中,流是一种抽象的数据通道,用于处理输入和输出操作。流可以处理各种类型的数据,包括字符、字节、文件等。
2025-03-30 18:35:26
1123
原创 C++ 类型转换
低层次的类型重新解释(如指针与整数之间的转换),不进行类型检查,用于将一种类型转换为另一种不同的类型。dynamic_cast用于将一个父类对象的指针/引用转换为子类对象的指针或引用(动态转换)。在C语言中,如果赋值运算符左右两侧类型不同,或者形参与实参类型不匹配,或者返回值类型与。接收返回值类型不一致时,就需要发生类型转化,C语言中总共有两种形式的类型转换:隐式类型。:转换的可视性比较差,所有的转换形式都是以一种相同形式书写,难以跟踪错误的转换。指向的对象的实际类型。对象,这个对象包含了类型的信息。
2025-03-29 16:17:03
897
原创 C++ 特殊类的设计
,适合存放动态分配或生命周期不确定的数据(如大型对象),虽然容量更大且灵活,但分配速度较慢,且管理不当易引发内存泄漏或碎片化问题。内存中的栈区由系统自动管理,用于存储函数调用时的局部变量、参数及返回地址,其内存分配和释放通过移动栈指针快速完成,生命周期与函数绑定,超出固定大小会导致栈溢出;(delete可以禁止默认成员函数的生成,或者是禁止任何一个成员的调用)。单例模式:一个类只能创建一个对象,即单例模式,该模式可以保证系统中该类只有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。
2025-03-29 15:05:02
493
原创 C++ 智能指针
内存泄漏是指程序在动态分配内存后,未能正确释放这些内存,导致内存资源的浪费。随着时间的推移,未被释放的内存越来越多,最终可能导致系统资源耗尽。
2025-03-28 16:54:10
1000
原创 C++ 异常
public:try {// 抛出自定义异常return 0;在这个例子中,我们定义了一个自定义异常类,并在main函数中抛出和捕获这个异常。
2025-03-26 18:23:11
559
原创 C++11 lambda与可变参数模版
比如:[=, &a, &b]:以引用传递的方式捕捉变量a和b,值传递方式捕捉其他所有变量。在块作用域中的lambda函数仅能捕捉父作用域中局部变量,捕捉任何非此作用域或者。[&,a, this]:值传递方式捕捉变量a和this,引用方式捕捉其他变量。[=]:表示值传递方式捕获所有父作用域中的变量(包括this)比如:[=, a]:=已经以值传递方式捕捉了所有变量,捕捉a重复。[&]:表示引用传递捕捉所有父作用域中的变量(包括this)[var]:表示值传递方式捕捉变量var。非局部变量都会导致编译报错。
2025-03-25 19:23:42
826
原创 C++11 auto decltype
允许编译器根据变量的初始化表达式自动推导其类型,无需显式指定。基本用法 推导规则 常见应用场景 范围 循环: 泛型编程: 注意事项 避免推导为不期望的类型(如 ): 二、 关键字作用 返回表达式 的类型,保留顶层 和引用,且不计算 的值。基本用法 推导规则 常见应用场景 模板元编程:
2025-03-24 19:05:20
1120
原创 C++11中关于初始化的一些变化
特性C++98C++11初始化语法碎片化(()push_back统一的大括号{}构造函数支持列表不支持,需手动处理支持窄化转换检查不检查,可能导致数据丢失严格检查,禁止窄化转换STL 容器初始化繁琐(需push_back或临时数组)直接列表初始化非聚合类型初始化必须显式调用构造函数支持{}调用构造函数默认初始化安全性基本类型可能未初始化{}强制值初始化为零聚合类定义严格(无任何构造函数)放宽(允许非静态成员初始化)
2025-03-24 18:10:58
325
原创 C++ 继承
基本概念继承:允许派生类(子类)复用基类(父类)的成员,并添加或覆盖成员。语法class 派生类名 : 访问权限 基类名 { ... };示例public:int a;class Derived : public Base { // 公有继承public:int b;
2025-03-20 23:23:47
746
原创 C++ 模版
优点代码复用:一份代码支持多种数据类型。类型安全:编译时检查类型错误,避免运行时问题。性能优势:编译时多态(如函数模板)无运行时开销。泛型编程支持:实现通用算法(如 STL)。
2025-03-17 21:03:47
340
原创 C++ map set pair
若元素不存在,first 和 second 均指向插入该元素时应处的位置(保持有序性)。元素存在:返回的 pair 中,first 指向该元素,second 指向其后一个元素。元素不存在:first 和 second 指向相同位置,即该元素应插入的位置。若元素存在,则 first 指向该元素,second 指向下一个元素。first:指向第一个不小于 key 的元素。second:指向第一个大于 key 的元素。共同作为元素的唯一标识(需定义比较规则)。可以存储两个不同类型的值,分别通过成员。
2025-03-17 18:25:25
988
原创 C++ 类和对象 友元 内部类 this指针 默认成员函数 初始化列表……
在构造函数中初始化成员变量(效率更高,必须用于const成员)。通过虚函数实现运行时绑定(需继承和虚函数支持)。指向当前对象的指针,用于区分成员变量与局部变量。将数据和操作数据的方法绑定,隐藏实现细节。定义在类内部的类,可访问外部类的静态成员。允许新类继承现有类的成员,实现代码复用。没有名字的临时对象,生命周期仅限当前行。允许自定义运算符对类对象的操作。
2025-03-17 16:19:18
538
原创 C++ 命名空间、函数、引用、内联函数和auto关键字
命名空间:解决命名冲突,通过namespace划分作用域。缺省参数:简化函数调用,需从右向左设置。函数重载:同名函数通过参数差异实现不同功能。引用:变量的别名,避免拷贝且允许修改实参。内联函数:优化短小函数,减少调用开销。
2025-03-17 11:01:15
427
原创 C++ priority_queue 堆
适用于需要按优先级处理元素的场景(如任务调度、贪心算法、TopK问题等)。通过更改比较函数可实现最小堆或自定义优先级规则。
2025-03-15 05:30:00
230
原创 C++ string
是C++标准库中用于表示和操作字符串的类,属于<string>头文件。它封装了动态字符数组,提供丰富的成员函数和操作符重载,支持高效的内存管理和字符串操作。
2025-03-13 22:57:10
343
原创 数据结构,时间复杂度与空间复杂度
1.数据结构前言1.数据结构前言算法在编写成可执行程序后,运行时需要耗费时间资源和空间内存资源。因此,即时间复杂度和空间复杂度。在计算 机发展的早期,计算机的存储容量很小。所以对空间复杂度很是在乎。但是经过计算机行业的迅速发展,计算机的存储容量已经达到了很高的程度。所以我们如今已经不需要再特别关注一个算法的空间复杂度。
2023-04-14 23:04:10
82
2
原创 指针的深入讲解(一)(习题讲解)
在有了上面问题的基础之后,剩下的两个问题就很好解决了,首先是第四个代码,很明显,我想要传递什么类型的变量,我就创建一个什么类型的变量来接收他,这是没有问题的。其实啊,因为数组名代表的是数组首元素的地址,所以,对于地址加1自然就得到了数组的下一个元素,也就是arr[1]等价于*(arr+1),所以啊,我们就可以把arr[i]理解为是*(arr+i),然后呢*(arr+i)是跟*(i+arr)等价的,自然也就可以写成i[arr],所以说,在上面的代码中,int arr[]也就跟int* arr是等价的了。
2023-03-25 20:14:34
104
7
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人