DL862
码龄3年
关注
提问 私信
  • 博客:67,410
    67,410
    总访问量
  • 41
    原创
  • 1,989,430
    排名
  • 37
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:江苏省
  • 加入CSDN时间: 2021-09-18
博客简介:

weixin_62042704的博客

查看详细资料
个人成就
  • 获得72次点赞
  • 内容获得31次评论
  • 获得439次收藏
  • 代码片获得855次分享
创作历程
  • 24篇
    2022年
  • 17篇
    2021年
成就勋章
TA的专栏
  • Linux
    10篇
  • 笔记
    1篇
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

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

MySQL基本操作大全

auto_increment:当对应的字段不给值,会自动的被系统触发,系统会从当前字段中已经有的最大值+1操作,得到一个新的不同的值。实际上mysql不对数据操作,所以比delete更快,但是truncate在删除数据的时候,并不是真正的事务,所以无法回滚。如果备份一个数据库时,没有带上-B参数,在恢复数据库的时候,需要先创建空数据库,然后使用数据库,再使用source还原。create table [表名称](字段1 类型,字段2 类型,...., primary key(字段1,字段2));......
原创
发布博客 2022.08.10 ·
5838 阅读 ·
6 点赞 ·
1 评论 ·
33 收藏

平衡树之红黑树

目录红黑树概念红黑树的性质红黑树的插入: 红黑树的验证:与AVL树的比较代码:红黑树,是一种二叉搜索树,但在每个节点上增加一个存储位置表示节点的颜色,可以是red或black。通过对任意一条从根到叶子的路径上各个节点着色方式的限制,红黑树确保没有一条路径会比其他路径长出两倍,因而是接近平衡的,而AVL树是高度平衡的。C++STL中,很多部分(包括set,multiset,map,multimap)的底层都是红黑树。对于任意一颗红黑树,它可以在O(log2 N)时间内做查找,插入和删除,这里的N是树中元素的数
原创
发布博客 2022.07.02 ·
629 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

【C++】二叉搜索树 && AVL树

二叉搜索树概念:二叉搜索树又称二叉排序树,它或者是一颗空树,或者是具有以下性质的二叉树:若它的左子树不为空,则左子树上所有节点的值都小于根节点的值。 若它的右子树不为空,则右子树上所有节点的值都大于根节点的值。 它的左右子树也分别为二叉搜索树。二叉搜索树的操作:1、二叉搜索树的查找2、二叉搜索的插入1、树为空,直接插入2、树不为空①按照二叉搜索树的性质查找插入的位置(要标记当前访问的节点的双亲,否则找到了插入位置,却无法访问节点的双亲结点)...
原创
发布博客 2022.07.02 ·
372 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

【网络】网络基础&&套接字编程详解

目录网络初识1、网络协议初识2、网络协议的分层:OSI分层模型--->网络理论模型:TCP/IOP五层模型--->工业中采用的网络模型为什么要有网络分层?3、网络数据的封装与复用4、IP地址和MAC的地址 IP地址 MAC地址套接字编程 1、预备知识1、认识端口--->port2、网络数据的五元组信息 3、网络字节序4、主机字节序与网络字节序的互相转化 5、TCP协议与UDP协议的特性和区别 2、UDP_socket编程1、流程2、接口:3、代码实现(注意其中的一些细节问题) 3、TCP_socket编程
原创
发布博客 2022.06.26 ·
1441 阅读 ·
0 点赞 ·
0 评论 ·
13 收藏

【Linux】线程池、单例模式、乐观锁与悲观锁

线程池:什么是线程池:一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度。可用线程数量应该取决于可用的并发处理器、处理内核、内存、网络sockets等的数量。应用场景:需要大量的线程来完成任务,且完成任务的时间比较短。web服务器完成网页请求这样的任务,使用线程池技术非常合适。因为单个任务小,而任务数量巨..
原创
发布博客 2022.05.21 ·
584 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

【Linux】生产者与消费者模型、信号量、死锁

死锁死锁的产生场景1、线程加锁之后,没有释放互斥锁就退出了因此,要在线程所有可能退出的地方都释放互斥锁。2、两种线程分别拿着一把锁,还想要请求对方的锁死锁的gdb分析产生了死锁,要分析其产生的原因,可以通过gdb来调试该程序,进而判断思索地原因。下面以上述情况2进行调试。1、通过调试可执行程序来分析1、b + 行号 打断点2、使用thread apply all bt命令将所有线程的调用堆栈展现出来3、使用p + 互斥锁变量可以查看...
原创
发布博客 2022.05.18 ·
1512 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

【C++】容器适配器:stack和queue

stackstack的介绍stack是一种容器适配器,专门用在具有后进先出的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。 stack是作为容器适配器被实现的,容器适配器既是对特定类封装作为其底层的容器,并提供一组特定的成员函数来访问其元素,将特定类作为其底层的,元素特定容器的尾部(即栈顶)被压入和弹出。 stack底层容器可以是任何标准的容器类模板或者一些其他特 定的容器类,这些容器类应该支持以下操作:empty、back、push_back、pop_back 标准容器ve
原创
发布博客 2022.05.18 ·
613 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

【C++】继承看这一篇就够了

概念及定义概念:1、继承机制是面向对象程序设计使代码可以复用的最重要的手段。2、允许程序员在保持原有类特性的基础上进行扩展,增加功能。这样实现的类称为派生类/子类。基于实现该类的原有类称为基类/父类3、继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。4、继承是类层次设计的复用定义:定义方式:class 派生类:继承方式 继承类继承方式可以是public、protected、private三种,他们在继承基类时,所具有的特性以及表现出的结果也...
原创
发布博客 2022.05.08 ·
1859 阅读 ·
2 点赞 ·
0 评论 ·
5 收藏

【Linux】线程安全(看这一篇就够了)

线程安全概念:线程安全:多个线程并发同一段代码时,不会出现不同的结果。常见对全局变量或者静态变量进行操作,并且没有锁保护的情况下,会出现该问题。举例:有一个单核CPU,有两个线程A和B,有一个全局变量n初始值为10。两个线程都要执行n++这个代码,由于两个线程是抢占式执行的,那么可能会有以下情况出现:假设A先拿到CPU资源,将n的值也就是10读到了寄存器当中,此时由于某些原因(CPU调度),线程A被剥离CPU;此时线程A的PCB中的上下文信息保存了寄存器当中的信息,程序计数器记
原创
发布博客 2022.05.04 ·
2047 阅读 ·
3 点赞 ·
0 评论 ·
10 收藏

【C++】List容器使用详解和模拟实现

List介绍:1、list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。2、list的底层是带头结点双向循环链表结构,双向循环链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。3、list和forwoed_list非常相似:最主要的不同在于forword链表是单链表,只能向前迭代,以让其更简单高效。4、与其他的序列式容器相比(array, vector, deque),list通常在任意位置进行插入、移除元素的效率
原创
发布博客 2022.04.26 ·
2100 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

【C++】vetor容器模拟实现(代码及注解)

#include<iostream>using namespace std;#include<string>#include<assert.h>template<class T>class myVector {public: typedef T* iterator; typedef const T* const_iterator;public: //构造和析构// //////////////////////////////////.
原创
发布博客 2022.04.20 ·
729 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

【Linux】线程概念&&线程控制

线程概念什么是线程:在程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线城是“一个进程内部的控制序列”。一切进程至少有一个执行线程。线程在进程内部运行,本质是在进程地址空间运行。在Linux系统中,在CPU眼中,看到的PCB都要比传统的进程更加轻量化。透过进程虚拟地址空间,可以看到进程的大部分资源,将进程资源合理的分配给每个执行流,就形成了线程执行流。①Linux操作系统中没有线程的概念,我们所说的创建线程,本质上是在Linux操作系统中创建轻量级进程,因.
原创
发布博客 2022.04.16 ·
665 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

【C++】vector容器详解&&迭代器失效问题

vector介绍:1、vector是表示可变大小的序列容器2、就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。3、本质讲,vector使用动态分配数组来存储它的元素。当元素插入的时候,这个数组需要被重新分配大小为了增加存储空间。其做法是,分配一个新的数组,然后将全部元素移到这个数组。就时间而言这是一个相对代价高的任务,因为每当一个新的元素加入到
原创
发布博客 2022.04.14 ·
1947 阅读 ·
1 点赞 ·
0 评论 ·
8 收藏

【C++】string类的实现

头文件#pragma once#include<iostream>using namespace std;class myString {public: typedef char* iterator;public: //构造和析构 myString(const char* s = ""); myString(const myString& str); myString& operator=(const myString& str); ~my.
原创
发布博客 2022.04.10 ·
795 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

【C++】STL简介、sting类详解、浅拷贝问题的解决

STL简介:什么是STL:STL(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个保罗数据结构和算法的软件框架。STL六大组件:string的使用:为什么要学习string类:c语言中,字符串是以‘\0’结尾的一些字符的集合,为了操作方便,c标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合面向对象的思想,而且底层空间需要用户自己管理,稍不留神可能还会越界访问.
原创
发布博客 2022.04.10 ·
829 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

【C++】模板(函数模板,类模板,模板的特化,模板的分离编译)

目录泛型编程函数模板:概念:函数模板原理:函数模板的实例化:泛型编程如何实现一个通用的交换函数?使用函数重载可以实现,但是有以下几个不好的地方:1、重载的函数只是类型不同,代码的复用率比较低,只要有新类型出现时,就需要增加对应的函数。2、代码的可维护性比较低,一个出错可能所有的重载均出错。那能否告诉编译器一个模子,让编译器根据不同的类型利用该模子来生成代码呢:答案就是模板,分为函数模板和类模板。泛型编程:编写与类型无关的通用代码,是代码复用的一种手段.
原创
发布博客 2022.04.06 ·
593 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

【C++】类和对象(看这一篇就够了)

类的定义class className{}; //注意分号class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面的分号。类中的元素为类的成员;类中的数据成为类的属性或者成员变量;类中的函数成为类的方法或者成员函数。类的两种定义方式:1、声明和定义都放在类体中(注意:成员函数如果在类中定义,编译器可能会将其当作内联函数处理)class Person {public: void show() { cout << _n.
原创
发布博客 2022.03.31 ·
1487 阅读 ·
2 点赞 ·
0 评论 ·
3 收藏

【Linux】进程信号

信号的概念信号只是告诉我们有这样一个信号,但是具体这个信号如何处理,什么时候处理是由进程决定的,所以是软中断。种类可以通过kill -l命令来查看所有信号。注意:总共有62个信号,没有32和33号信号。其中1-31号信号被称之为非实时信号,也叫非可靠信号,它在使用的过程中信号可能会丢失。34-64号信号被称为实时信号,也叫可靠信号,它在使用过程中信号不会丢失。信号的产生硬件产生方式1、Ctrl + c产生的是2号信号SIGINT,是一个中断信号。2、Ctrl +
原创
发布博客 2022.03.30 ·
1982 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

【Linux】进程间通信(匿名管道、命名管道、共享内存、消息队列)

为什么需要进程间通信每一个进程的数据都是存储在物理内存当中,进程通过各自的进程虚拟地址空间进行访问,访问的时候通过各自的页表的映射关系,访问物理内存。从进程的角度看,每个进程都认为自己拥有4G(32位操作系统)的空间。至于物理内存当中如何存储,页表如何映射,进程是不清楚的。这也造就了进程的独立性。好处:让每个进程运行的时候都是独立运行的,数据不会乱窜。坏处:如果两个数据之间需要数据交换,由于进程的独立性,就没有那么方便了。常见的进程间通信方式:管道、共享内存、消息队列、信号量、信号、网络
原创
发布博客 2022.03.23 ·
1926 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

C++入门(在掌握了C语言的基础上)

C++关键字:C语言有32个关键字(c90),C++有63个关键字(c++98)。命名空间:定义:表示一个标识符的可见范围,使用namespace{ }的形式定义。注意:1、命名空间中的内容,即可以定义变量,也可以定义函数。2、命名空间可以嵌套使用。3、同一个工程中允许存在多个相同名称的命名空间,编译器最终会合成同一个命名空间中(所以相同名称的命名空间中不能存在相同的成员变量名称额,否则会产生冲突)4、一个命名空间就定义了一个新的作用域,命名空间中所有的内容都局限.
原创
发布博客 2022.03.14 ·
2204 阅读 ·
3 点赞 ·
1 评论 ·
16 收藏
加载更多