自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 设计模式C++

针对一些经典的常见的场景, 给定了一些对应的解决方案,这个就叫设计模式。设计模式的作用:使代码的可重用性高,可读性强,灵活性好,可维护性强。

2025-03-12 20:53:23 1288

原创 线程和进程

线程是进程的一个执行流。线程在进程内部运行,线程在进程的地址空间内运行,共享进程的一部分资源,包括页表,IO设备,文件描述符表。但是线程页拥有独立栈和私有的上下文结构。创建线程系统分配哪些资源?PCBWindows VS Linux线程的区别:在Windows操作系统中,每个进程都有自己的PCB,线程有独立的TCB,Windows的开发者认为进程和线程在执行流层面是不同的东西。进程有自己的执行流,线程在进程内部也有自己的执行流。

2025-02-11 18:26:43 892

原创 Linux文件管理(附带超详细图文总结)

IO 是指程序与外部设备(如键盘、显示器、文件、网络、硬件设备等)之间的数据交换。输入(Input):从外部设备读取数据到程序。输出(Output):将程序中的数据写入外部设备。

2025-02-11 18:26:25 1087

原创 #define字符串化和标记粘贴

预处理器会将宏参数转换成一个字符串字面量。这意味着参数的值会被双引号包围,并且替换到宏中。类型的变量,并被初始化为。

2024-12-25 12:15:15 285

原创 位运算符、标记位传参

位运算符作用于操作数的位(bit)。按位与(&)对应位都为1时结果为1按位或(|)对应位至少有一个为1时结果为1,否则为0按位异或(^)对应位不同为1相同为0按位非(~)将所有位取反左移(<<)向左移动指定的位数,空缺补0右移(>>)向右移动指定的位数,空缺补0。

2024-12-24 17:47:00 286

原创 Qt开发入门:实用技巧与实例

QT是一个跨平台图形界面引擎。历史:1991奇趣科技写到signals下返回void需要声明,不需要实现可以有参数写到public slot下或者public或者全局函数返回void需要声明,也需要实现可以有参数,可以重载触发自定义信号关键字 emit案例下课后,老师触发饿了信号,学生相应信号,请客吃饭当自定义信号和槽出现重载需要利用函数指针明确指向函数的地址添加新文件-QT-设计师界面类(.h .cpp .ui)

2024-12-24 14:23:10 1362

原创 #pragma once/可变参数/typedef

pragma once的作用:是一个预处理指令,用于在C和C++编程语言中防止头文件被多次包含。这个指令告诉预处理器,该文件只需要被包含一次,无论它在项目中被引用了多少次。防止由于头文件被多次包含而导致的编译错误,比如重复定义。头文件:#include

2024-12-14 00:16:34 194

原创 建立基于TCP的客户端和服务端

创建套接字AF_INETAF_INET6AF_UNIXSOCK_DGRAM这个参数指定了使用的特定协议。对于很多常见的套接字类,如和SOCK_DGRAM,这个参数可以设置为0,系统会自动选择一个默认协议。socket()函数调用成功时,返回一个非负整数,即新创建的套接字的文件描述符(socket descriptor)。如果调用失败,函数返回-1,并且errno被设置为描述错误的值。

2024-12-13 22:36:13 1168 2

原创 如何创建基于udp的客户端和服务端

字典:dict.txt。

2024-12-09 20:57:57 695

原创 信号(产生,保存,处理)

用户态和内核态是操作系统的两种运行状态。

2024-11-10 15:15:51 730

原创 select,poll,epoll

输入:表示用户告诉内核,你要帮我关心一下,我给你的集合中的所有fd的读事件---哪些fd上的读事件你要关心。比特位的位置,表示fd的数值,比特位的内容,表示是否关心。3.select的大部分参数是输入输出型的,调用select前要重新设置所有fd,调用之后,我们还要检查更新所有的fd,这带来的就是遍历的成本--用户。阻塞式IO,非阻塞式IO,信号驱动式IO,多路转接/多路复用每个人都等了,都参与了IO过程——同步IO。比特位的位置,表示fd的数值,比特位的内容,表示是否就绪。回调的方式,你好了你来叫我。

2024-10-04 15:02:34 739

原创 C++11右值引用

不可以单纯字面去理解,等号左边是左值,等号右边是右值。左值:可以修改的可以认为是左值,左值通常是。

2024-08-10 21:33:07 591

原创 HashTable,HashMap,HashSet

【代码】HashTable,HashMap,HashSet。

2024-06-28 10:09:23 188

原创 AVLTree模拟

【代码】AVLTree模拟。

2024-06-24 11:54:01 139

原创 STL——priority_queue模拟

【代码】STL——priority_queue模拟。

2024-06-08 16:38:39 171

原创 力扣——数组中的第K个最大元素(3种解法)

提示:priority_queue的底层是堆排序,push和pop的复杂度是O(logN)第三种:(最优解)堆排序之——topk问题。

2024-06-07 19:59:52 354 1

原创 STL---list实现(C++)

【代码】STL---list实现(C++)

2024-06-04 20:17:12 159

原创 vector模拟

【代码】vector模拟()

2024-04-07 21:32:28 399

原创 Linux粘滞位

让一个公共的目录,大家各自可以进行rwx操作,但是,禁止大家互删对方的文件,给目录设置粘滞位(权限的一种特殊情况)Linux系统中有很多人,我们需要在一个公共的目录下,进行临时文件的操作(增删查改)

2024-03-24 19:04:21 371 1

原创 模板c++

泛型编程:编写与类型无关的通用代码,是代码复用的一种手段。模板是泛型编程的基础。

2024-03-17 22:44:07 560 1

原创 Linux文件属性介绍及权限操作:

linux通过文件属性的第一个字符区分文件类型:c:字符设备文件:磁盘,显示器b:块设备:磁盘I :链接文件:快捷方式p:管道文件:快捷方式。

2024-03-16 11:14:08 1176 2

原创 Linux指令及练习(下篇)

◆ 网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup;-a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称。◆ 文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln;date -s “01:01:01 2008-05-23″ //这样可以设置全部时间。

2024-03-09 22:49:52 983

原创 Linux指令及练习(上篇)

说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。-p (parents)可以是一个路径名称,此时若路径中的某些目录尚不存在,加上次选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。

2024-03-09 21:36:25 1358

原创 类和对象c++

class 类名{//类体;成员变量(类的属性);成员函数(类的方法);// 一定要注意后面的分号。

2024-02-21 22:42:08 961

原创 auto关键字,范围for(c++11)

注意:不能作为参数,数组:void a(auto p);作用:使用auto可以进行优化例如一些很复杂的类型。auto关键字的作用:自动推导变量。

2024-02-13 16:08:09 325 1

原创 解决频繁调用函数导致的消耗问题

2.更为重要的是函数的参数必须声明为特定的类型。1. 每次使用宏的时候,一份宏定义的代码将插入到程序中。1. inline是一种以空间换时间的做法,如果编译器将函数当成内联函数处理,在编译阶段,会。议:将函数规模较小(即函数不是很长,具体没有准确的说法,取决于编译器内部实现)、不。用函数体替换函数调用,缺陷:可能会使目标文件变大,优势:少了调用开销,提高程序运。是递归、且频繁调用的函数采用inline修饰,否则编译器会忽略inline特性。比如:宏的参数可以出现类型,但是函数做不到。

2024-02-11 21:10:00 1469 1

原创 c++引用

1.引用在定义时必须初始化:引用是变量的别名,并不分配空间,所以没有初始化就没有指向的内存空间。3.引用一旦引用一个实体,不能再引用其他实体。3.引用一旦引用一个实体,再不能引用其他实体。4.引用类型必须和引用实体是同种类型。编译器不会为引用变量开辟内存空间,它。引用:不是新定义一个变量,而是。1.引用在定义时必须初始化。2.一个变量可以有多个引用。

2024-02-10 09:10:42 559 1

原创 c++函数重载

● 参数列表必须不同(个数不同、类型不同、参数排序顺序不同等)下,函数名相同,参数列表不同(参数的类型,数量,顺序)的多个函数。● 仅仅返回类型不同不足以成为函数重载。编译器可以根据重载函数的参数自动区别调用对应的函数。函数参数可以指定默认值,从右往左依次指定,不能间断。如果函数声明和定义分开,在函数声明处指定默认值即可。● 函数的返回值可以相同也可以不同。2.在编译器看来都是指针不能构成重载。1.错误原因,二义性编译器无法区分。

2024-02-07 15:30:49 243 1

原创 大BOOL和小bool ,nullptr和在 c++中的区别

BOOL: bool : windows系统提供int 的别名(typedef) TURE FALSE宏 BOOL类型变量占用4个字节空间 C++关键字 true false 关键字 bool占用一个字节空间 typedef int BOOL;define TRUE 1define FALSE 0

2024-02-06 19:32:26 202 1

原创 动态申请内存空间(c/c++)

6.malloc申请内存空间失败时,返回的是NULL,使用时必须判空;new申请内存空间失败时返回异常;1.new-delete C++关键字,编译器的支持,malloc-free函数,需要头文件支持。2.malloc需要指定所需空间的大小(byte),new需要类型,根据类型自动计算所需空间。4.new-delete申请,释放对象内存空间,会自动调用构造函数,析构函数。3.malloc的返回值为void*,接收时必须强转,new不需要;5.malloc申请的内存空间不会初始化,new可以初始化;

2024-02-06 19:19:34 1024 1

原创 c和c++的区别

编程的语言,更注重的是程序的整体设计,后期便于维护,优化和管理,让一个功能尽可能的通用。c++是由c衍生出来的一门语言,不但兼容包含了c语言,还增加了一些新特性继承,多态,函数重载,支持泛型编程(模板函数,模板类),强大的STL库等。复用性:公共功能,过程的抽象,体现为能被重复使用的类,方法。封装:将零散的数据和算法放到一个集合里,方便管理和使用。扩展性:增加新的功能不影响原来已经封装好的功能。<<输出操作符,本质是一个函数,后面接的是参数。//打开一个std(标准)命名空间。的语言,更注重程序实现逻辑。

2024-02-05 22:45:57 344 1

原创 extern和局部变量和全局变量

临近原则。

2024-01-27 15:58:26 179 1

原创 预处理#define

预处理是非常简单的文字操作,文本操作宏替换简称宏;

2024-01-27 12:02:09 155 1

空空如也

空空如也

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

TA关注的人

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