- 博客(22)
- 收藏
- 关注
原创 浅谈数据结构快速排序算法
1962年Hoare提出的一种二叉树结构的交换排序方法,其基本思想为:任取待排序元素序列中的某元素为基准值,按照该排序码将待排序集合分割成两子序列,左子序列中所有元素均小于基准值,右子序列中所有元素均大于基准值,然后左右子序列重复该过程,直到所有元素都排列在相应位置上为止。下面对三种快排的思想结合代码做简要分析。...
2021-04-26 14:54:07
115
原创 浅谈Linux进程间通信
·进程间通信:操作系统为系统提供的用于实现进程间通信的方式 进程之间是无法直接通信的,因为每个进程都有独立的虚拟地址空间,访问的都是自己的虚拟地址,因此进程具有独立性,无法直接通信 根据通信场景的不同,因此提供了多种不同的通信方式 进程间通信方式种类:管道、共享内存、消息队列、信号量·管道 特性:半双工通信--可以选择方向的单向通信 本质:在内核中开辟一块缓冲区(内核空间中的一块内存) 原理:多个进程通过访问同一块内核中的缓冲区实现通信(...
2021-04-20 21:42:46
121
原创 浅谈Linux下的重定向
以输出重定向为例,了解Linux下的重定向重定向:标准输出重定向就是将原本要写入标准输出的数据,不再写入标准输出,而是写入到指定的文件中 ls>>test.txt(追加重定向) ls>test.txt(清空重定向) ls默认吧浏览目录结果打印出来-->把数据写入标准输出,加入重定向之后,ls程序并没有改变,但是数据流向改变了重定向原理:通过改变文件描述符对应位置的文件描述信息(structfile结构体中的信息),进而改变所操作的文件,实现数据流向的改...
2021-04-20 18:03:53
309
原创 浅谈linux下的文件描述符
文件描述符:非负整数--系统调用IO接口操作文件的句柄 本质:内核中进程打开的文件描述信息结构体指针数组的下标 文件描述符的分配规则:最小未使用,即上述数组中未被使用空间中最小下标对应的空间 众所周知,在Linux操作系统中使用task_struct的结构体来对一个进程进行描述,而在该结构体中存在files_struct的结构体,被用来描述进程中打开的文件信息,该结构体中包含了struct file *fd_arry的数组,该数组的下标即就是文件描述符。 ...
2021-04-20 17:49:20
118
原创 Linux 常用指令及技巧
编辑器:移删复替撤更跳<1>移动:指的是光标的移动 第一种方式:键盘当中的上下左右键 第二种方式: j(下) k(上) h(左) l(右) w(下一个词词首) b(上一个词词首,包括光标所在词)<2>删除:dd:删除一行(本质上是剪贴掉了,如果下一个操作是粘贴,那就将刚刚剪贴掉的内容给粘贴回来) p:向光标所在行的下一行进行粘贴 [num]dd:删除num行,num的大小 x:删除光标所在位置的字符(单个字符)...
2021-03-25 19:54:05
105
1
原创 C++ String类写时拷贝小案例
C++摸鱼记录1```cpp#include <iostream>using namespace std;#include <assert.h>#pragma warning (disable:4996)class String_rep{ friend class String;public: String_rep(const char *str = "") :m_count(0) { cout << "Create String_rep Ob
2021-03-25 19:44:27
137
转载 数字条纹投影~标准N步相移主值相位计算式推导过程
基于以下两篇博客:<1>https://blog.csdn.net/qq_15295565/article/details/97412222<2>https://blog.csdn.net/yl_best/article/details/104637023?ops_request_misc=&request_id=&biz_id=102&utm_term=%E6%A0%87%E5%87%86N%E6%AD%A5%E7%9B%B8%E7%A7%BB%E6%8
2021-03-15 16:27:59
2949
3
原创 浅谈 make&makefile 用法
<1> make & makefilemake是自动化解释器, makefile是一个文件,通过make来解释makefile文件,构建可执行程序。<2> makefile 文件的编写规则目标对象:依赖对象编译命令目标对象:需要生成的可执行程序,或者目标程序依赖对象:生成目标对象时,所依赖的文件编译命令:如何使用依赖对象生成目标对象假设,现有 main.c 文件,不采用make & makefile模式生成可执行文件时,采用如下的方式:当采用mak
2021-03-12 17:36:41
238
原创 3ds Max 2015 数字条纹投影三维测量仿真系统流程
1. 测量系统搭建2. 设置测量对象材质3. 选择投影图像序列4. 渲染、保存最终结果
2021-03-11 15:35:20
634
2
原创 VS2013 Kinect2.0 PCL1.8.0 OpenCV2.4.9配置流程(三维点云获取流程)
<1>VS2013 + PCL1.8.0环境配置①https://blog.csdn.net/qq_41188371/article/details/113729149?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-1&spm=1001.2101.3001.4242②https://blog.csdn.net/qq_38991255/article/details/84067020?utm_medium=
2021-03-11 13:41:03
225
原创 数据结构~栈和队列相互实现
首先要谈的是栈和队列的结构特点,举一个生活中的例子,假如你和一群朋友去旅游,需要通过一个独木桥,正常情况下第一个进去的人会率先通过,最后上桥的会最后一个通过;但如果走到一半发现前面由禁止通行的标志,那这时最后上桥的那个人会率先下桥,而第一个上桥的则会最后一个下桥。这就恰似队列(先进先出)和栈(先进后出)的结构。1. 图解栈和队列假设有一串数据1 2 3 4 5 6 ,下图分别描述栈和队列进出情况。<1>栈的出入 <2>队的出入栈的...
2020-07-29 15:43:44
214
原创 C语言学习之数据结构(线性表)
线性表:包含n个元素的有序序列,元素的信息由使用场景决定。线性表的表现形式有线性表和链表两种形式,两者的却别在于内存空间的连续性。1.顺序表:开辟连续的内存空间存储元素。在实现形式上分为两种:静态顺序表(使用定长数组)、动态顺序表(使用动态内存分配),使用动态内存分配的方式使得代码的可维护性提升,该方式优于静态顺序表的存储方式。 顺序表的构造:typedef struct SeqList{ ElemType *base; size_t capacity; ..
2020-07-26 21:40:05
151
原创 C语言学习之字符串操作相关的库函数
字符串操作的相关库函数大集结<1>strlen size_t strlen ( const char * str ); 功能:返回字符串中‘\0’前面出现的字符的个数,但不包含‘\0’。返回值为 size_t (无符号)<2>strcpy char* strcpy(char * destination, const char * source); 功能:从源字符串向目...
2020-07-19 13:26:37
209
原创 C语言学习之通讯录实现
1.具体功能:增删改查、排序及清空整个通讯录2.可实现通讯录的自动扩容3.程序退出可保存通讯录part A:contact.h#ifndef _CONTACT_H_#define _CONTACT_H_#include <stdio.h>#include <assert.h>#include <stdlib.h>#include <windows.h>#pragma warning(disable:4996)#define
2020-07-08 23:04:22
6581
原创 C语言学习之动态内存管理
1、问什么要动态内存管理?在进行数据存储的时候,我们经常的做法是利用数组开辟指定大小的空间用以存储数据,但是数组的具体大小取决于输入的数据,因此往往在程序运行时才知道所需数组的内存空间的大小。为了达到对内存空间的合理使用,这就要就我们根据输入数据的不同来开辟不同大小的内存空间,继而出现动态内存分配。动态内存分配在程序运行时为指定的变量分配内存,其分配的内存空间位于堆区。此外,在栈区可开辟的空间大小小于堆区,因此在需要开辟较大的内存空间时,也需要使用动态内存分配。2、动态内存分配函数malloc.
2020-06-28 00:10:18
133
原创 C语言学习之结构体
1、结构体结构体存在的意义:在之前的学习中,首先接触到了同一种类型数据的集合-数组但是如果需要对不同的数据的集合进行描述,显然只有数组是非常的麻烦的。比如去描述一个班级学生的信息情况,这里就需要有姓名、学号、年龄,身高等信息,如果使用数组进行存储,那么就注定需要将学生的信息进行分类存储,这在查找某一名学生的信息时是非常不便的,因此就需要有结构体这一类型用来存储不同类型的数据。...
2020-06-24 14:21:43
888
原创 C语言学习之指针:从初始到深入
一、指针的基本常识1.什么是指针?对于指针需要掌握以下几个基本的概念:<1>指针是一种变量类型,也是具有空间、内容、地址三个属性。空间属性值得是:在定义指针时,内存会给指针变量分配指定类型大小的空间,空间的大小为四个字节(32位平台下)。内容属性指的是:指针变量内部存储的数据,即存放的是地址。因此,通常也会说指针就是地址,地址就是指针,要注意的是这里的指针指的是指针的内容。<2>指针是有类型的,其类型决定了指针访存时的步长,即指针解引用操作时的权限。比如:char *
2020-06-16 23:43:15
376
原创 C语言学习之数据存储
在学习学习计算机/编程语言的时候,我们会有一个绕不开的话题:数据的存储。以下小编分为两部分:整型数据存储、浮点型数据存储。一、整型数据在内存中的存储1.我们都知道整型数据在开辟变量空间时需要4byte,那么数据是如何在这4byte的空间中存储的?首先,我们需要了解三个概念:原码、反码、补码。计算机中的有符号数有上述三种表示方法,这三种表示方法均由符号位和数值位两部分组成。符号位(位于二进制序列的最高位):0表示正数,1表示负数。数值位:除符号位剩下的23个bit位,不同的表示方法该位存在差异。下
2020-05-26 22:56:37
274
原创 C语言学习之打印菱形、数组奇偶排序
Part 1:C语言实现打印菱形如上图所示,是使用C语言打印的一个菱形,小编这里使用指针的方式来解决该问题(也可通过观察规律实现)。在解决该问题时,我们通常分为两步来实现菱形的打印,第一步是打印菱形的上半部分,第二步是打印菱形的下半部分。<1>打印菱形的上半部分问题分析:如图所示,如果我们将上半部分的每行看成一个一维数组,那么第一行数组的内容除了中间位为星号,其他的都是空格,然后之后的每行都是在上一行的基础上向两端依次扩展一位,直到遍历完整个数组。实现:通过分析,我.
2020-05-16 20:57:09
1069
原创 C语言学习之喝汽水小程序
今天在联系C语言编程的时候,碰到这样一个问题,感觉很有意思,下面小编将分享自己解决这个问题是的一些思路,欢迎大家前来评论。Question:喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,假设你有指定数量的金额,那么可以喝多少瓶汽水?问题分析:在解决这个问题的时候,如果我现在所拥有的金额是2的整数次放,那么问题将会很简单;比如我现在有16元钱,那么我每次喝的汽水的数量为:16——>8——>4——>2——>1,最后只需要将这些数加起来即可。然而如果将金额看成随机数,那么2的整数次
2020-05-15 17:00:49
391
原创 C语言学习之扫雷小游戏
以下内容是小编整理的近期学习的C语言变成实现简单版本的扫雷游戏,与之前整理的三子棋游戏相似,这个小项目的目的也是为了锻炼、提升对于C语言数组、循环以及函数的应用能力。1. 实现一次扫雷游戏的流程上图是一次游戏的简易流程图,在每次进入游戏后,需要玩家键入需要排查的位置,若位置正确,则判断该位置是否为雷区;当该位置不是雷区时,进行count--(count表示非雷区位置的个数),然后循环排...
2020-04-28 00:02:25
351
原创 C语言学习历程之三子棋游戏
以下内容为小编整理的近期学习C语言三子棋游戏流程及代码,以下内容对初学C语言的童鞋们巩固循环、数组、函数等内容有一定的帮助!!1.三子棋游戏简单流程图上图为一轮游戏的简单流程图2.三子棋游戏代码#include "chess.h"//定义游戏开始菜单void Menu(){ printf("################################\n");...
2020-04-21 16:03:47
209
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人