自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

平淡中造就不平凡

旨在记录学习历程,希望可以对各位小伙伴有所帮助!

  • 博客(125)
  • 收藏
  • 关注

原创 【Linux练习生】POSIX信号量( 基于环形队列的生产消费模型)

我们之前在进程间通信这一节简单讲解了System V信号量,信号量本质就是一把计数器,描述临界资源中资源数目的大小(信号量能够更细粒度的对临界资源进行管理)。本节要讲的POSIX信号量和SystemV信号量作用相同,都是用于同步互斥操作,达到无冲突的访问共享资源目的。 但POSIX可以用于线程间同步。

2022-10-26 17:04:28 956 6

原创 【Linux练习生】生产者与消费者模型

生产者和消费者彼此之间不直接通讯,而通过这个容器来通讯,所以生产者生产完数据之后不用等待消费者处理,直接将生产的数据放到这个容器当中,消费者也不用找生产者要数据,而是直接从这个容器里取数据,这个容器就相当于一个缓冲区,平衡了生产者和消费者的处理能力,这个容器实际上就是用来给生产者和消费者解耦的。

2022-10-25 12:37:02 286 6

原创 【Linux练习生】线程安全

我们知道,对于线程来说,多个同属一个进程的线程间是共享地址空间的,也就是很多资源是共享的–这就导致了它的优点是通信方便,不需要类似进程间通信需要建立管道(临界资源)来看到同一份资源;但是也造成了一个缺点,就是缺乏访问控制。因为一个线程的操作问题,很可能给其他进程造成不可控,或者引起崩溃、异常、逻辑不正确等现象–即线程安全问题!那么接下来我们就线程的安全问题来进行讲解~

2022-10-22 13:12:43 1863 2

原创 【Linux练习生】Linux多线程

本节重点了解线程概念,理解线程与进程区别与联系。了解线程控制,线程创建,线程终止,线程等待,线程分离。了解线程ID。

2022-10-19 09:26:47 563 5

原创 C++11基础认识

C++11的一些基础了解认识~

2022-10-06 23:43:53 328

原创 【编程强训12】二进制插入+查找组成一个偶数最接近的两个素数

给定两个32位整数n和m,同时给定i和j,将m的二进制数位插入到n的二进制的第j到第i位,保证n的第j到第i位均为零,且m的二进制位数小于等于i-j+1,其中二进制的位数从0开始由低到高。返回:1100以测试样例为例n=1024;m=19;j=2;i=6要把n的二进制值插入m的第j位到第i位,只需要把n先左移j位,然后再进行或运算(|)即可。或者呢,从低位开始先取到m的每一位,分别插入到n中对应的位置。.........

2022-09-01 08:44:59 262

原创 【编程强训11】最近公共祖先+求最大连续bit数

将一棵无穷大满二叉树的结点按根结点一层一层地从左往右编号,根结点编号为1。现给定a,b为两个结点。设计一个算法,返回a、b最近的公共祖先的编号。注意其祖先也可能是结点本身。2,3返回:1最近公共祖先表示距离两个节点最近的公共父节点,这道题考察二叉树。题目所描述的满二叉树举例如下:我们以2和7为例,寻找2、7的最近公共祖先。我们知道上述树中子节点与父节点之间的关系为root = child / 2,将a=2,b=7所以如果a!......

2022-08-31 09:08:19 281

原创 【Linux练习生】进程信号(深度理解)

前面我们介绍的进程间通信,都是常规状态下的工作模式。对于异常情况下的工作模式,就需要用「信号」的方式来通知进程。

2022-07-23 19:33:22 633 7

原创 结构体大小的计算(结构体内存对齐)

学习过C语言的我们知道,整型变量有自己的大小,浮点型变量有自己的大小,数组也有自己的大小,那么结构体有没有自己的大小呢?回答是肯定的,结构体也有自己的大小。

2022-07-20 09:05:48 3810 4

原创 何为整型提升(实例)

C的整型算术运算总是至少以缺省整型类型的精度来进行的。为了获得这个精度,表达式中的字符和短整型操作数在使用之前被转换为普通整型,这种转换称为整型提升。表达式的整型运算要在CPU的相应运算器件内执行,CPU内整型运算器(ALU)的操作数的字节长度一般就是int的字节长度,同时也是CPU的通用寄存器的长度。因此,即使两个char类型的相加,在CPU执行时实际上也要先转换为CPU内整型操作数的标准长度。......

2022-07-19 22:43:22 301

原创 【Linux练习生】进程间通信

管道是Unix中最古老的进程间通信的形式,我们把从一个进程连接到另一个进程的数据流称为一个“管道”。例如,统计我们当前使用云服务器上的登录用户个数。who命令用于查看当前云服务器的登录用户(一行显示一个用户),wc-l用于统计当前的行数。其中,who命令和wc命令都是两个程序,当它们运行起来后就变成了两个进程,who进程通过标准输出将数据打到“管道”当中,wc进程再通过标准输入从“管道”当中读取数据,至此便完成了数据的传输....

2022-07-18 13:36:20 1044 10

原创 【编程强训5】 连续最大和+统计回文

【描述】一个数组有 N 个元素,求连续子数组的最大和。输入描述:输入为两行。 第一行一个整数n(1

2022-07-13 19:06:17 128

原创 【编程强训4】计算糖果+进制转换

【描述】A,B,C三个人是好朋友,每个人手里都有一些糖果,我们不知道他们每个人手上具体有多少个糖果,但是我们知道以下的信息:这四个数值.每个字母代表每个人所拥有的糖果数.现在需要通过这四个数值计算出每个人手里有多少个糖果,即A,B,C。这里保证最多只有一组整数A,B,C满足所有题设条件。输入描述:输入为一行,一共4个整数,分别为A - B,B - C,A + B,B + C,用空格隔开。 范围均在-30到30之间(闭区间)。输出描述:输出为一行,如果存在满足的整数A,B,C则按顺序输出A,B,C,用空

2022-07-13 17:13:54 110

原创 【Linux练习生】如何用 VS Code 登录云服务器(和Linux端进行同步)

1.打开vs code,在扩展商店里,搜索 Remote - SSH,然后下载。2.下载后,左侧栏会出现如图所示图标,然后点击加号3.输入例如,然后回车。4.点击下图所示路径,然后在右下角点击 Open Config5.然后会默认显示当前云服务器用户的信息,确认无误后关闭即可。7.然后按下图一步一步执行选择操作系统点击continue后输入密码;此时已经连接成功~然后点击左侧远程资源管理器-》选中当前服务器-》然后点击文件(选择打开文件夹)-》右侧就会显示服务器的根目录....

2022-07-12 12:25:39 575 1

原创 【Linux练习生】基础IO(详细)

本节我们讲解基础IO的部分,将围绕以下内容进行梳理讲解:- 复习C文件IO相关操作- 认识文件相关系统调用接口- 认识文件描述符,理解重定向- fd和FILE,理解系统调用和库函数的关系- 理解文件系统中inode的概念- 认识软硬链接,对比区别...

2022-07-10 12:43:19 2829 10

原创 【编程强训10】井字棋+密码强度等级

【解题思路】:我们以三行三列为例:井字棋有四种情况表示当前玩家获胜,1代表当前玩家棋子下面代码适用任何情况:2.密码强度等级 --》链接【解题思路】:这里对于不同种类的字符得分不同,同学们可以现对每一个维度进行单独判断,即对于长度,字母,数字,符号单独判断,最后把所有的单项值根据题目要求相加,输出对应的安全级别.......

2022-07-08 13:20:02 252

原创 【剑指 Offer】从尾到头打印链表(栈思想)+ 数组中重复的数字(哈希映射)

【解题思路】:代码实现:2.从尾到头打印链表 --》链接【解题思路1】:其实看到这个题目的直觉就是把链表里面的数据放入一个数组中,然后将数组的数据反一下就可以.代码:【解题思路2】:但是这样会多定义一个数组来存储数据使得空间复杂度增加,所以不实用。看到数据进去和出来顺序反着肯定想到的就是栈了,所以我们定义一个栈先把数据押入栈中,然后在将栈的数据存储的数组中即可。...

2022-07-07 11:14:01 175

原创 【编程强训9】走方格的方案数(递归)+另类加法(位运算)

本题为求取路径总数的题目,一般可以通过递归求解,对于复杂的问题,可以通过动态规划求解。此题比较简单,可以通过递归解答。解题思路:我们以上面的n * m(3 * 3)的格子进行解释有两种情况:所以此题可以通过递归实现,情况a为递归的终止条件。代码实现:2.另类加法–》链接【题目解析】【解题思路】:本题可以通过位运算实现,具体实现如下:两个数求和,其实就是 求和后当前位的数据+两个数求和的进位例如:1 + 2两者相加,则得到: 00000011 就是32 + 2相加后得到: 00000100

2022-07-06 23:30:33 297

原创 【Linux练习生】深度解剖-》进程控制

在Linux中,fork函数是非常重要的函数,它从已存在进程中创建一个新进程。新进程为子进程,而原进程为父进程。返回值:在子进程中返回0,父进程中返回子进程的PID,子进程创建失败返回-1。fork之后,父子进程代码共享。也就是说,fork之前父进程独立执行,而fork之后父子两个执行流分别执行。注意: fork之后,父进程和子进程谁先执行完全由调度器决定。一个父进程可以创建多个子进程,而一个子进程只能有一个父进程。因此,对于子进程来说,父进程是不需要被标识的;而对于父进程来说,子进程是需要被标识的,因为

2022-07-02 17:39:54 492 4

原创 【编程强训3】字符串中找出连续最长的数字串+数组中出现次数超过一半的数字

【解题思路】:遍历字符串,使用cur去记录连续的数字串,如果遇到不是数字字符,则表示一个连续的数字串结束了,则将数字串跟之前的数字串比较,如果更长,则更新更长的数字串更新到res。代码实现:2.数组中出现次数超过一半的数字 -> 链接【解题思路1】:代码实现:【解题思路2】:代码实现:...

2022-06-30 19:27:53 171

原创 【编程强训2】排序子序列+倒置字符串

【题目解析】:【解题思路】:【本题注意点】:本题开始a[i+1]与a[i]进行比较,为了避免越界,数组定义为n+1个,同时给a[n] = 0;a[n] = 0带来的影响,我们分为三种情况讨论:也就是说数组最后一个位置多增加一个0,不会影响第1、2情况的判断,主要是帮助第3情况的正确判断。代码实现:2.倒置字符串 -> 链接【题目解析】:本题题意很简单,就是将一段字符串中的前后单词交换,以单词为单位逆置。【解题思路1】:先将整个字符串逆置过来,再遍历字符串,找出每个单词,对单词逆置。这里我们使用了st

2022-06-30 09:12:35 168

原创 【编程强训】删除公共字符(哈希映射)+组队竞赛(贪心)

【解题思路】:将第二个字符串的字符都映射到一个hashtable数组中,用来判断一个字符在这个字符串。判断一个字符在第二个字符串,不要使用删除,这样效率太低,因为每次删除都伴随数据挪动。这里可 以考虑使用将不在字符添加到一个新字符串,最后返回新新字符串。...

2022-06-28 13:11:03 185

原创 【Python学习】模块

模块的基本使用在Python中用关键字import来引入某个模块,比如要引用模块math,就可以在文件最开始的地方用import math来引入。基本格式如下:import module1,mudule2...如果要导入模块中的函数,其格式如下:from 模块名 import 函数from 模块名 import 函数名1,函数名2....导入某个模块中的所有函数,格式如下:from 模块名 import *区别:from import : 从车里把矿泉水拿出来,给我import

2022-05-26 20:36:44 314 1

原创 【Python学习】文件操作

1.文件的打开和关闭1.1 文件的打开操作文件的整体过程:打开或新建立一个文件读/写数据关闭文件在python中,使用open方法打开文件:open(文件名,访问模式)#“文件名”必须要填写#“访问模式”是可选的 注意:如果使用open函数打开文件时,如果没有注明访问模式,则默认为只读®,此时必须保证文件是存在的,否则会报异常。异常信息:Traceback (most recent call last): File "<input>", line 1, in

2022-05-19 21:04:31 1053

原创 【python学习】面向对象(下)

1.闭包Python函数是支持嵌套的。如果在一个内部函数中对外部函数作用域(非全局作用域)的变量进行引用,那么内部函数就会被称为闭包。闭包需要满足如下3个条件:1.存在于两个嵌套关系的函数中,并且闭包是内部函数;2.内部函数引用了外部函数的变量(自由变量);3.外部函数会把内部函数的函数名称返回。(不带括号)...

2022-05-18 10:48:10 326

原创 【Python学习】面向对象(上)

一.面向对象编程概述说到面向对象,我们可能不禁想到…想的挺好,可你有对象吗!!?所以还是言归正传- -那么什么是面向对象呢?在现实世界中存在各种不同形态的事物,这些事物之间存在着各种各样的联系。在程序中使用对象来映射现实中的事物,使用对象间的关系来描述事物之间的联系,这种思想就是面向对象编程(OOP, Object Oriented Programming)。我们把面向过程和面向对象做个对比:在上面的五子棋基础上,若加入悔棋功能,面向过程和面向对象,分别怎么实现呢?现在是不是对于所谓的

2022-05-17 23:26:31 432

原创 【Python学习】函数篇-进阶

1. 闭包Python函数是支持嵌套的。如果在一个内部函数中对外部函数作用域(非全局作用域)的变量进行引用,那么内部函数就会被称为闭包。闭包需要满足如下3个条件:存在于两个嵌套关系的函数中,并且闭包是内部函数;内部函数引用了外部函数的变量(自由变量);外部函数会把内部函数的函数名称返回。(不带括号)2. 装饰器2.1 装饰器的概念假设我们已经开发了一个本有的函数,后续可能会增加临时的需求,例如插入日志,我们可以增加一个包裹函数,由它来负责这些额外的需求,这个包裹函数就是装饰器 。2.2

2022-05-17 22:31:40 364

原创 【python学习】函数篇-初阶

什么是函数?函数是组织好的,可重复使用的,用来实现单一或相关联功能的代码段,它能够提高应用的模块性和代码的重复利用率。1 函数的定义和调用Python定义函数使用def关键字,格式如下:def 函数名(参数列表): 函数体eg:def printInfo(): print('------------------------------------') print(' 人生苦短,我用Python ') print('-----

2022-05-10 22:09:57 871

原创 【STL系列】(set、map、multiset、multimap)介绍及使用

1.关联式容器如果你接触过STL中的部分容器,比如:vector、list、deque、forward_list(C++11)等,那你应该制动哦这些容器统称为序列式容器,因为其底层为线性序列的数据结构,里面存储的是元素本身。那什么是关联式容器?它与序列式容器有什么区别?关联式容器也是用来存储数据的,与序列式容器不同的是,其里面存储的是<key, value>结构的键值对,在数据检索时比序列式容器效率更高。比如:set、map、unordered_set、unordered_map等。贴士

2022-04-06 23:48:30 1916 20

原创 【数据采集】Xpath实例学习

XpathXPath,全称 XML Path Language,即 XML 路径语言,它是一门在XML文档中查找信息的语言。XPath 最初设计是用来搜寻XML文档的,但是它同样适用于 HTML 文档的搜索。1.XPath概览XPath 的选择功能十分强大,它提供了非常简洁明了的路径选择表达式,另外它还提供了超过 100 个内建函数用于字符串、数值、时间的匹配以及节点、序列的处理等等,几乎所有我们想要定位的节点都可以用XPath来选择。XPath 于 1999 年 11 月 16 日 成为 W3

2022-04-04 16:05:54 1916 9

原创 【python学习】列表、元组、字典、集合(详解)

关注作者,持续阅读作者的文章,学习更多知识!https://blog.csdn.net/weixin_53306029?spm=1001.2014.3001.5343一、列表列表(list)是Python中的一种数据结构,它可以存储不同类型的数据。不同元素以逗号分隔。eg:A = [1,'zhangsan','a', [2, 'b']]列表使用规则1.使用方括号[]表示开始和结束。2.不同元素以逗号分隔。3.每个元素的排列是有序号的,元素相同但排列不同的列表属于不同的列表。4...

2022-03-31 18:25:00 12263 20

原创 【python学习】字符串详解

关注作者,持续阅读作者的文章,学习更多知识!https://blog.csdn.net/weixin_53306029?spm=1001.2014.3001.5343字符串是一种表示文本数据的类型,在python中可以用以下三种方式表示字符串。1.转义字符对于单引号或者双引号这些特殊的符号,我们可以对他们进行转义。例如,对字符串中的单引号进行转义:print('Ok sir, let\'s go! ')注意:print函数自身带了一个换行,如果使用print()就可以输出一个换..

2022-03-24 22:01:47 1933 8

原创 【带你吃透C++】模板详解

🎃 引入:泛型编程泛型编程最初诞生于 C++ 中,由 Alexander Stepanov[2] 和 David Musser[3] 创立。目的是为了实现 C++ 的 STL (标准模板库)。其语言支持机制就是模板( Templates )。模板的精神其实很简单:参数化类型。换句话说,把一个原本特定于某个类型的算法或类当中的类型信息抽掉,抽出来做成模板参数 T 。

2022-03-19 16:17:38 1981 33

原创 【带你吃透C++】 —— 函数模板与类模板

#include<iostream>using namespace std;//模板// C语言为什么不支持模板,因为它不支持泛型编程(例如C++中的模板),C语言中的宏,void *指针 ,_Generic关键字有类似的作用,但相比模板,就是小巫见大巫了// 原来C语言还可以这样实现“泛型编程”->https://mp.weixin.qq.com/s?src=11&timestamp=1642823699&ver=3573&signature=C1gI

2022-03-02 16:53:23 384 2

转载 【内存操作函数】(memcpy,memmove,memcmp,memset)

内存操作函数

2022-03-02 16:18:04 197

原创 【str家族】如何使用处理字符和字符串的库函数

C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的,字符串通常放在常量字符串 中或者 字符数组 中。但比较友好的是C语言有处理字符和字符串的一些库函数,方便我们对字符和字符串进行一些操作。 所以本节我会重点介绍处理字符和字符串的一些常用库函数,让大家学会使用,并且了解它们的实现原理和一些注意事项。

2022-03-01 18:32:03 409 10

原创 【八大排序详解~C语言版】直接插入排序-希尔排序- 直接选择排序-堆排序-冒泡排序-快速排序-归并排序-计数排序

排序算法想必大家不陌生,今天就来详细的做个总结,包括排序算法的复杂度,稳定性,实现方式。

2022-02-21 16:29:03 2743 15

原创 【万字好文】二叉树从入门到精通(树、二叉树、堆、深度广度优先遍历、二叉树练习题.....)

【本节目标】1.树概念及结构2.二叉树概念及结构3.二叉树顺序结构及实现4.二叉树链式结构及实现

2022-02-09 23:25:18 1077 7

原创 【数据结构和算法】二叉树基础oj练习

这里写目录标题1. 单值二叉树2.检查两颗树是否相同3.对称二叉树4.另一颗树的子树5.二叉树的构建及遍历6.二叉树的前序遍历7.二叉树的中序遍历8.二叉树的后序遍历1. 单值二叉树–oj链接题解:1.判断根的左孩子的值与根结点是否相同。2.判断根的右孩子的值与根结点是否相同。3.判断以根的左孩子为根的二叉树是否是单值二叉树。4.判断以根的右孩子为根的二叉树是否是单值二叉树。 若满足以上情况,则是单值二叉树。注:空树也是单值二叉树。代码:/** * Definition for

2022-02-09 23:00:53 896

原创 【带你吃透C++】C++动态内存管理

作为一名编程初学者,通常学习中,发生内存错误是件非常麻烦的事情。编译器不能自动发现这些错误,通常是在程序运行时才能捕捉到。而这些错误大多没有明显的症状,时隐时现,增加了改错的难度。 了解内存分配并掌握运用它是必不可少的。本文主要针对C++动态内存管理内容进行分享,如果想了解C语言动态内存管理可以参考:【C语言进阶】动态内存管理(详细介绍)

2022-01-21 22:04:21 6805 26

空空如也

空空如也

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

TA关注的人

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