梦静泽
码龄3年
关注
提问 私信
  • 博客:13,738
    13,738
    总访问量
  • 25
    原创
  • 70,386
    排名
  • 48
    粉丝
  • 0
    铁粉
  • 学习成就

个人简介:计算机行业小菜鸟一枚

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:湖南省
  • 加入CSDN时间: 2022-03-17
博客简介:

weixin_68256194的博客

查看详细资料
  • 原力等级
    成就
    当前等级
    3
    当前总分
    243
    当月
    0
个人成就
  • 获得90次点赞
  • 内容获得3次评论
  • 获得94次收藏
  • 代码片获得155次分享
创作历程
  • 2篇
    2024年
  • 11篇
    2023年
  • 12篇
    2022年
成就勋章
TA的专栏
  • C++线程
    1篇
  • c语言动态内存管理
    1篇
  • 文件操作
    1篇
  • 结构体相应类型
    1篇
  • 原码
    1篇
  • 反码
    1篇
  • 补码
    1篇
兴趣领域 设置
  • 编程语言
    c++c语言
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

180人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

C++线程安全

线程安全线程安全是指代码在多线程访问某个类(方法或者对象)时,这个类始终能表现出正确的行为。换种说法,如果一个类或者对象能够在多线程环境下运行,在多线程同时对临界区资源(共享资源),最终这个临界区资源的最终操作结果的值是正确的,那么就是线程安全,反之就是线程不安全。
原创
发布博客 2024.10.12 ·
2098 阅读 ·
38 点赞 ·
0 评论 ·
32 收藏

Linux互斥锁pthread_mutex_t

函数作用:该函数用于C/C++函数中的多线程编程中,用于互斥锁的初始化。函数是以动态方式创建互斥锁的,参数attr指定了新建互斥锁的属性。如果参数attr为空(NULL),则使用默认的互斥属性,默认属性为快速互斥锁。每个互斥锁的属性在创建时将被指定,不同的锁类型在尝试对已经一个被锁定的临界资源加锁的表现不同。函数成功执行后会返回零,其他情况则都是出现了错误。函数成功执行后,所创建的互斥锁被初始化为未锁住状态。
原创
发布博客 2024.10.10 ·
974 阅读 ·
22 点赞 ·
0 评论 ·
20 收藏

c++多态的详细解析

1、不满足多态 — 看调用着者的类型,调用这个类型的成员函数2、满足多态 — 看指向的对象的类型,调用这个类型的成员函数。。编译器在编译时依据函数的参数类型、数量、顺序、const性质等信息来决定哪个函数被调用。。在运行时,由具体的对象类型和实参来决定哪个函数被真正调用,而不是在编译期就确定了的。这种多态性需要在类定义时使用 virtual 关键字声明虚函数。通过派生类覆盖基类的虚函数来实现多态。需要注意的是,模板虽然也可以实现多态性,但是它是编译时的多态性,不属于运行时多态性。
原创
发布博客 2023.06.20 ·
571 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

浅谈c++的继承

/private: 在子类中不可见(完全不能用) 只能防外人 //protected: 在子类中是可见的。既能防外人,也能防儿子基类private成员在派生类中无论以什么方式继承都是不可见的。这里的不可见是指基类的私有成员还是被继承到了派生类对象中,但是语法上限制派生类对象不管在类里面还是类外面都不能去访问它。比如说父亲的隐私,就算是他儿子,也不能去访问。protected是防外人,privateb不仅是防外人,而且防儿子并不能直接使用,但能通过基类的函数去调用需要经过父亲的同意。
原创
发布博客 2023.06.18 ·
140 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

Linux进程与文件系统

cd ../ cd / 之类的命令让bash自己执行的命令,称之为内建命令/内置命令。几乎所有的环境变量的命令,都是内建命令。在Linux中,内建命令是指已经集成在shell程序中的命令,它们的执行不需要加载外部程序,可以直接在命令行上运行。这些内部命令的执行速度通常比外部命令更快,因为它们不需要去磁盘加载外部程序。可以使用内建命令的好处是它们快速,并且可以与系统的环境变量和其他属性进行交互,并且更容易维护。
原创
发布博客 2023.06.01 ·
170 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

c++AVL树(也称高度平衡搜索二叉树)

注:这里使用了平衡因子。int _bf;// 平衡因子{}
原创
发布博客 2023.05.12 ·
244 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Linux进程控制和进程等待

父进程等待子进程退出的过程等待:就是通过系统调用,获取子进程退出码或者退出信号的方式,顺便解决内存泄漏的问题。
原创
发布博客 2023.04.13 ·
70 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

c++内存管理和模板类型

new的原理new是一个操作符,malloc是一个函数1. 调用operator new函数申请空间2. 在申请的空间上执行构造函数,完成对象的构造delete的原理1. 在空间上执行析构函数,完成对象中资源的清理工作2. 调用operator delete函数释放对象的空间new T[N]的原理1. 调用operator new[]函数 -》封装malloc ,在operator new[]中实际调用operator new函数完成N个对象空间的申请2. 在申请的空间上执行N次构造函数。
原创
发布博客 2023.04.10 ·
85 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

c语言的堆二叉树

树种所有的父亲都大于等于孩子:树的所有的父亲都小于等于孩子父亲和孩子下标的关系如果算得的数超出数组范围,就说明它没有孩子左孩子一定是奇数位,右孩子一定是偶数位任何一个数组都是完全二叉树,但不一定是堆。堆可以是数组,也可以是链表:根是大堆中最大的数:根是小堆中最小的数1、根的位置跟最后一个交换,方便删除2、向下调整向上建堆调整的时间复杂度为:n*log(n)向下建堆调整的时间复杂度为:n向下调整的好处是个数少(调整少的) 向上调整是个数多,调的多。
原创
发布博客 2023.04.01 ·
60 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

c++类和对象

class为定义类的关键字ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。这个函数并不是全局函数,它是这个类的函数。class Stack //在定义类的时候推荐不要使用默认,将自己需要的去定义 即可public://成员函数private://成员变量int* a;int size;exit(-1);size = 0;
原创
发布博客 2023.03.28 ·
90 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

总结部分排序

加入三数取中后,快排瞬间从最坏的情况跳到最好的情况,这样下的快排几乎不会出现最坏情况,这样的情况下,快排的时间复杂度可以看做是。重复上序操作,如果cur出现越界,将key的值指向目前prev的位置,并继续进行上序操作,直至prev指针访问的最后一个值。用rangeN标记每次归并的数据个数,从一开始,因为一个数据可以认为是有序的,可以直接归并,并不需要多加判断。将第一坑位置的值先交给key,右边找小于key的值并将小于key的值交给坑位置,然后该位置形成一个新的坑。
原创
发布博客 2023.03.26 ·
73 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Linux的-gdb的使用

continue(或c):从当前位置开始连续而非单步执行程序,从一个断点出,直接运行到下一个断点处。数据在输出之前会先放入到数据缓冲区里,当程序运行完毕后,数据缓冲区内的数据会释放出来。list/l 行号:显示binFile源代码,接着上次的位置往下列,每次列10行。\r :回车,会使光标会到开头,重新输入后,会覆盖当前头的数据(第一个字符)print(p):打印表达式的值,通过表达式可以修改变量的值或者调用函数。set var n = XXX:修改变量的值,设置一个变量为特定的值。
原创
发布博客 2023.03.21 ·
85 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

时间,空间复杂度和堆二叉树的基本理解

但是,只有你将你的程序在你的设备中运行起来,才能知道它到底花费了多少时间,并且在每一个机器上的运行时间可能都不一样,所以很难确定其所花费的具体时间。实际上当 n开始变得很大的时候,其余两项加起来的值对第一项的影响很小,所以通常疏略不记,俗称取极限值,所以在计算时间复杂度时,其实并不一定要对计算的次数进行准确计算,而只需要求。大O渐进分析法一般给予的是这个函数的上界,但不是上确界,它表示的是算法计算所表现的一个最坏的执行结果,这就保证了算法的运行时间一般小于这个时长。:具有相同父节点的节点互称为兄弟节点;
原创
发布博客 2023.03.19 ·
431 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

c语言双向循环链表

pragma once # include # include # include // 带头+双向+循环链表增删查改实现 typedef int LTDataType;// 创建返回链表的头结点. ListNode * ListCreate();// 双向链表销毁 void ListDestory(ListNode * pHead);// 双向链表打印 void ListPrint(ListNode * pHead);
原创
发布博客 2022.12.29 ·
314 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Linux权限和部分指令

于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装.,因为新创建的文件不能有执行权限,只能在创建后通过chmod命令(chmod是Linux系统管理员最常用到的命令之一,用于改变文件或目录的访问权限)给文件增加执行权限。:当前目录的所有文件及其目录,后面可以加上你要删除的内容的后缀,及你自己写上的后缀名,即可删除你所输入的后缀名的文件及目录。-v :压缩的过程中显示文件!
原创
发布博客 2022.12.15 ·
111 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

程序的环境处理和预处理指令

define _CRT_SECURE_NO_WARNINGS 1 # define MIN 0 //这里定义最小值,可以防止后面的重复定义,它会将文件中所以的MIN转换成 0 # include int main() {return 0;}1。
原创
发布博客 2022.11.12 ·
115 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

c语言动态内存管理

在C语言中,编写程序的时候不能确定内存变量应该定义为多大,程序员希望在程序运行的时候根据数据量的大小向系统动态获得内存空间。所谓动态内存管理,就是指在程序执行的过程中动态地申请和回收内存空间。动态内存管理不像变量和数组那样在程序编写时预先分配内存空间,而是根据程序的需要即时分配,而且分配的内存大小就是程序要求的大小。C语言允许程序动态申请内存,用于存放一些数据,需要时随时开辟,不需要时随时释放。C语言中,内存的动态分配是通过系统提供的库函数来实现的,主要有。
原创
发布博客 2022.10.17 ·
456 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

c语言文件操作

当程序终止时,整个数据都会丢失,即使程序终止,存储在文件中也会保留您的数据。如果要输入大量数据,通常需要很长时间才能全部输入。如果您有一个包含所有数据的文件,您可以使用 C 中的几个命令轻松访问文件的内容。您可以轻松地将数据从一台计算机移动到另一台计算机,而无需进行任何更改。计算机可以在各种存储介质(诸如磁盘、磁带和光盘)上存储信息。为了方便使用计算机系统,操作系统提供了信息存储的统一逻辑视图。操作系统对存储设备的物理属性加以抽象,从而定义逻辑存储单位,即文件(file)。
原创
发布博客 2022.10.11 ·
269 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

结构体、位段、枚举、联合体

结构体常被用于描述相对复杂的对象,其内容可以表示很多用单一数据无法表示的各种数据。结构体类型不是由系统定义好的,而是需要程序设计者自己定义的。C语言提供了关键字struct来标识所定义的结构体类型。(1)在定义结构体变量的时候,可以对其成员进行一定的初始化;也可以在声明这个结构体之后,对这个结构体类型的变量进行初始化。1.在声明定义的同时定义变量​{int num;};b1,b2​2.在声明定义结构体后,再定义该类型的变量​​{int num;};​。
原创
发布博客 2022.10.06 ·
418 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

实现部分库函数(strlen、strcpy、strcmp、strcat、strstr...)

库函数一般是指编译器提供的可在c源程序中调用的函数。可分为两类,一类是c语言标准规定的库函数,一类是编译器特定的库函数。由于版权原因,库函数的源代码一般是不可见的,但在头文件中你可以看到它对外的接口库函数简介。C语言的语句十分简单,如果要使用C语言的语句直接计算sin或cos函数,就需要编写颇为复杂的程序。因为C语言的语句中没有提供直接计算sin或cos函数的语句。又如为了显示一段文字,我们在C语言中也找不到显示语句,只能使用库函数printf。
原创
发布博客 2022.10.02 ·
350 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏
加载更多