自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 无法解析的外部符号问题

无法解析的外部符号问题1、头文件是否包含全(对应cmake文件的include_directories)2、检查依赖文件和需要链接的库(add_dependencies和target_link_libraries)

2021-09-27 20:39:22 950

原创 通俗易懂KMP模式匹配法及代码实现

最近碰到一道KMP字符串匹配题目,首先觉得用自己的笨办法应该也能做,子字符串分别于母字符串匹配,若匹配不成功右移一位,这样做对于简单字符串可以在规定的时间内完成,但是对于稍复杂字符串则匹配时间过长,超出规定的运行时间。于是学习了KMP模式匹配法。什么是KMP模式匹配KMP模式匹配是一种高效的字符串匹配方法。它最大的特点就是充分利用的模式串(也就是子串)的隐含内在特点,匹配过程不再像传统方法那样...

2020-02-12 23:56:14 646

原创 左值--右值--左值引用--右值引用

**左值:**可以取地址、有名字的、非临时的**右值:**不能取地址、没名字的、临时的左值引用要求右边的值必须能够取地址,如果无法取地址,可以使用常引用右值引用用来绑定到右值,然后本来要被销毁的右值的生存期延长至与绑定它的右值引用的生存期。右值引用减少了对象构造和析构达到高效的目的。...

2022-02-17 16:57:38 111

原创 C++多线程条件变量和虚假唤醒

C++多线程条件变量和虚假唤醒条件变量:条件变量是利用线程间共享的全局变量(关键段、读写锁)进行同步的一种机制。为了防止其他线程竞争,条件变量的使用总是和一个互斥锁结合在一起。它主要实现两个动作:1)线程等待某个条件,条件为真则继续执行,条件为假则将自己挂起(为了避免忙等待,节省CPU资源);2)线程执行某些处理后,条件成立,则会通知该等待线程继续执行。功能函数BOOL SleepConditionVariableCS(PCONDITION_VARIABLE ConditionVariable

2021-09-04 16:42:06 1343

原创 C++ 字节对齐

字节对齐内存字节对齐机制,就是为了最大限度的减少内存读取次数。我们知道CPU读取速度比内存读取速度快至少一个数量级,所以为了节省运算花费时间,只能以牺牲空间来换取时间了。pragma pack(n)#pragma pack(n) 指定编译器的对齐参数数用法:#pragma pack(n)#pragma pack()另外:#pragma pack(push) //保存当前对齐状态#pragma pack(push,4) //保存当前对齐状态,并设定为4字节对齐#pragma p

2021-08-09 16:35:35 380

原创 C++ 四种转换运算符

四种转换运算符const_castconst_cast用来移除变量的const限定符或者volatile限定符。常用于函数传参用到const变量,但是该函数参数是非const类型,需要做一个类型转换,dynamic_cast1、该运算符把express转换为type类型,但是type必须是类的指针、引用或者void*2、如果type-id是类指针类型,那么exdivssion也必须是一个指针,如果type-id是一个引用,那么exdivssion也必须是一个引用。3、dynamic_cast主

2021-08-09 16:32:54 123

原创 进程与线程

进程与线程定义进程是系统进行资源分配和调度的基本单位;线程是CPU进行资源调度和分配的基本单位,它是进程的一个实体;关系一个线程可以创建、撤销另一个线程;进程之间相互独立,并发执行;区别1、资源进程资源是系统调度分配的,每个进程有自己独立的地址空间;线程有自己的独立堆栈和局部变量,但没有独立的地址空间资源,多线程共享其所属进程的资源;2、运行线程不能独立执行,必须依存于进程中,由进程提供多个线程执行控制。进程是可独立执行,互不影响。3、优缺点进程:有利于资源管理和保护,但在进程

2021-02-24 23:40:45 67

原创 2020-04-27

类的友元函数是非成员函数,其访问权限与成员函数相同。

2020-04-27 22:39:30 119

原创 C字符数组与string对象的区别

在C++有string类前,C字符数组长用于字符串操作,C语言库提供了函数来完成各种操作。string对象的出现,使得字符串操作更为简便。声明初始化的不同字符数组若声明时不初始化则必须给定其长度;string类不受限制,因为其长度会根据给定内容自动调整;char charr1[10]; //正确char charr1[] = “great”; //正确char charr1...

2020-03-08 19:35:33 351

原创 #pragma pack(n)以及#pragma pack(push)

数据在计算机内存储涉及到内存字节对齐机制,它是为了最大限度的减少内存读取次数。因为CPU读取速度比内存读取速度快至少一个数量级,所以为了节省运算花费时间,只能以牺牲空间来换取时间了。#pragma pack(n)#pragma pack(n) 其作用是指定编译器的字节对齐参数为n用法#pragma pack(n)代码#pragma pack()代表在这之间的代码数据按n字节对齐进...

2020-02-23 18:31:35 364

原创 前序、后序、中序遍历以及二叉树的重建

二叉树是一种很常见的数据结构,二叉树有三种遍历方法,分别是前序遍历、后序遍历、中序遍历。现总结一下在已知前序、中序求整个二叉树,以及已知中序后序求二叉树的方法。三种遍历方法简介首先简单介绍一下二叉树的三种遍历方法。前序遍历:以 根结点 -> 左结点 -> 右结点的顺序遍历。中序遍历:以 左结点 -> 根结点 -> 右结点的顺序遍历。后序遍历...

2020-02-16 20:39:53 152

原创 char*与string、sizeof与strlen的区别及使用方法

char*与string、sizeof与strlen的区别及使用方法char*char*的使用string类型string类常用方法sizeof、strlen的区别参考原文地址:linkchar*char*是一个指向字符的指针,是一个内置类型。可以指向一个字符,也可以表示字符数组的首地址(首字符的地址)。我们更多的时候是用的它的第二的功能,来表示一个字符串,功能与字符串数组char ch[n...

2020-02-03 17:19:00 1063

原创 计算机通信原理基础知识总结

1、计算机通信的数据封装过程:2、基带数字信号的调制方法:调频:频率低的正弦波代表0,频率高的正弦波为1。调相:正弦波代表0,余弦波代表1。数字信号常用编码格式...

2019-06-13 10:08:39 5570

原创 OSI参考模型

应用层:所有能产生网络流量的程序表示层:在传输之前进行加密或压缩处理,编码方式的选择(二进制或ASCII)会话层:可查当前建立的会话。可用来查木马,netstat -n netstay -nb传输层:可靠传输、流量控制、不可靠传输网络层:负责选择最佳路径、规划IP地址数据链路层:定义了帧的开始和结束,实现透明传输以及差错校验物理层:规定了接口标准、电器标准,如何在物理链路上传输更...

2019-06-12 09:54:55 170

原创 Python中输出表格样式的居中显示

1、输出表格样式,首先想到的是制表符\t,用制表符输出如下:name = ‘xiangyu’age = 20height = 180print(f"name\tage\theight\n{name}\t{age}\t{height}")由上图可知,系统是左对齐,不太美观。2、用字符串函数center(width)函数实现居中对齐print(f"{‘name’.center(10)}...

2019-05-18 20:23:06 9876

原创 python中一个文件调用另一个文件中的类

python中经常会遇到调用其他文件中的类,此时分两种情况:1、同目录调用,可直接使用import:例如: ex1.py中有Parent类,ex2.py中调用Parent类来实例化(1) 可以使用:import ex1 #导入ex1文件全部内容调用方法:son = ex1.Parent()(2) 使用from ex1 import Parent #只导入Parent类调用方法:so...

2019-05-17 15:31:11 7648

原创 python中random模块中的函数介绍

1、random.random() # 用于生成一个0到1的随机浮点数2、random.uniform(a, b) #用于生成一个指定范围内的随机浮点数,且不受a、b位置影响。3、random.randint(a, b) #生成一个指定范围内的整数,必须满足a<=b4、random.randrange([start], stop[, step]) #从指定范围内...

2019-05-10 21:31:24 447

原创 python中的列表用法

1、列表可以存放任意的数据类型2、列表增加元素的方法:Append() 末尾添加一个元素Extend() 末尾添加多个元素,但是元素要以列表的形式添加Insert() 指定位置添加元素,第一个参数为位置,第二个为元素3、append()方法和extend()方法的区别:Append()方法是将参数作为一个元素添加Extend() 方法是将参数作为一个列表添加4、mix....

2019-05-02 10:55:07 257

原创 Linux中文件打包与解压

1、Linux中常见压缩包文件格式:文件后缀名 说明*.zip zip 程序打包压缩的文件*.rar rar 程序压缩的文件*.7z 7zip 程序压缩的文件*.tar tar 程序打包,未压缩的文件*.gz gzip 程序(GNU zip)压缩的文件*.xz xz 程序压缩的文件*.bz2 bzip2 程序压缩的文件*.tar.gz...

2019-05-01 18:39:14 1495 1

原创 Linux环境变量与文件查找

使用declare命令创建名为tmp的变量: declare tmp对tmp变量进行赋值:tmp = shiyanlou使用echo命令和**$符号来读取变量tmp的值:echo $tmp默认情况下,当一个进程被创建时,除了创建过程中明确指定的话,它将继承其父进程的绝大部分环境设置。打印环境变量信息的三个命令:set:显示当前Shell所有变量**,包括其内建环境变量、用户自定义变量及导...

2019-05-01 17:23:12 280

翻译 三、Linux目录结构以及基本文件操作

1、FHS标准FHS(Filesystem Hierarchy Standard,文件系统层次结构标准),多数Linux版本采用这种文件组织形式,FHS标准定义了系统中每个区域的用途、所需要的最小构成的文件和目录,同时还给出了例外处理与矛盾处理。FHS定义了两层规范,第一层是,/下面的各个目录应该放什么文件数据,例如/etc应该放置设置文件,/bin与/sbin则应该放置可执行文件等。第二次则...

2019-04-28 20:17:00 328

翻译 Linux用户管理与权限管理

2.1、查看用户伪终端是相对于/dev/tty设备而言的,使用[Ctrl]+[Alt]+[F1]~[F7] 进行切换的 /dev/tty 设备是“真终端”,伪终端就是当你在图形用户界面使用/dev/tty7 时每打开一个终端就会产生一个伪终端。用命令who am i可以查看当前伪终端的信息,如下图所示:其中,第一列表示当前伪终端的用户名,第二列的 pts/0 后面那个数字就表示打开的伪终端序...

2019-04-25 21:22:35 170

空空如也

空空如也

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

TA关注的人

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