自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 DTM、DEM、DSM与DOM的概念

一、DTM(Digital Terrain Model)   数字地面模型是利用一个任意坐标系中大量选择的已知x、y、z的坐标点对连续地面的一个简单的统计表示,或者说,DTM就是地形表面形态属性信息的数字表达,是带有空间位置特征和地形属性特征的数字描述。地形表面形态的属性信息一般包括高程、坡度、坡...

2019-10-21 12:25:02

阅读数 92

评论数 0

原创 构造函数为啥不能是虚函数,析构函数为啥要是虚函数

关于C++为什么不支持虚拟构造函数,Bjarne很早以前就在C++Style and Technique FAQ里面做过回答 Avirtual call is a mechanism to get work done given partialinformation. In particular...

2019-09-26 18:30:52

阅读数 15

评论数 0

原创 十大经典排序算法(动图演示)

https://www.cnblogs.com/onepixel/p/7674659.html

2019-09-16 10:29:44

阅读数 16

评论数 0

原创 epoll的执行流程和epoll反应堆的流程区别?为什么要设计epoll反应堆?好处是啥?

https://www.cnblogs.com/Bozh/archive/2012/04/26/2471106.html

2019-09-15 16:43:03

阅读数 53

评论数 0

原创 【分布式服务框架】-- RPC 原理

https://blog.csdn.net/qqxyy99/article/details/80713718

2019-09-12 10:38:48

阅读数 50

评论数 0

原创 序列化和反序列化+常用的两种C++序列化方案的使用心得(protobuf和boost serialization)

序列化和反序列化:https://tech.meituan.com/2015/02/26/serialization-vs-deserialization.html 常用的两种C++序列化方案:https://www.cnblogs.com/lanxuezaipiao/p/3703988.htm...

2019-09-12 10:33:50

阅读数 242

评论数 0

原创 深入理解MySQL索引原理和实现

https://blog.csdn.net/tongdanping/article/details/79878302

2019-09-08 21:07:14

阅读数 16

评论数 0

原创 C++成员函数在内存中的存储方式

https://blog.csdn.net/fuzhongmin05/article/details/59112081

2019-09-07 21:54:10

阅读数 246

评论数 0

转载 理解事件驱动select,poll,epoll三种模型

select select最早于1983年出现在4.2BSD中,它通过一个select()系统调用来监视多个文件描述符的数组,当select()返回后,该数组中就绪的文件描述符便会被内核修改标志位,使得进程可以获得这些文件描述符从而进行后续的读写操作。 select目前几乎在所有的平台上支持,其...

2019-09-04 20:03:32

阅读数 59

评论数 0

原创 TCP面向连接的本质是什么?

“连接”:这个连接并不是真正意义上的连接,称之为“虚电路”,其实也并不是说A和B之间震荡建立了一条连接,或者说保证了路由路径是一致的,因为路由选择并不是传输层控制的,传输层负责流量控制和差错控制,因此所有的拥塞控制和路由选择其实是IP协议的工作,所以说,TCP怎能保证路由路径是一样的呢,如果出现网...

2019-09-03 09:29:58

阅读数 835

评论数 0

原创 互斥锁和信号量的差区别

信号量(semaphore[ˈseməfɔ:(r)])用在多线程多任务同步的,一个线程完成了某一个动作就通过信号量告诉别的线程,别的线程再进行某些动作。而互斥锁(Mutual exclusion,缩写 Mutex)是用在多线程多任务互斥的,一个线程占用了某一个资源,那么别的线程就无法访问,直到这个...

2019-09-02 11:16:18

阅读数 51

评论数 0

原创 linux中用户栈与内核栈有什么区别

内核在创建进程时,会同时创建task_struct和进程相应堆栈。每个进程都会有两个堆栈,一个用户栈,存在于用户空间,一个内核栈,存在于内核空间。当进程在用户空间运行时,CPU堆栈寄存器的内容是用户堆栈地址,使用用户栈。当进程在内核空间时,CPU堆栈寄存器的内容是内核栈地址空间,使用的是内核栈。 ...

2019-09-01 12:02:01

阅读数 96

评论数 0

原创 linux 线程有自己独立的内核栈(内核栈中存储着pcb)吗?

疑问:首先,我们知道所有线程共享主线程的虚拟地址空间(current->mm指向同一个地址),且都有自己的用户态堆栈(共享父进程的地址空间,再在里面分配自己的独立栈,默认2M)。这是毫无疑问的,但还有一点我没搞明白,内核栈是共享还是独立的? 回答:独立的。理由:要不然内核栈对应的threa...

2019-09-01 12:01:27

阅读数 370

评论数 0

转载 Linux多进程与多线程中使用信号区别

在Linux的多线程中使用信号机制,与在进程中使用信号机制有着根本的区别,可以说是完全不同。在进程环境中,对信号的处理是,先注册信号处理函数,当信号异步发生时,调用处理函数来处理信号。它完全是异步的(我们完全不知到信号会在进程的那个执行点到来!)。然而信号处理函数的实现,有着许多的限制;比如有一些...

2019-09-01 11:43:55

阅读数 87

评论数 0

原创 C语言中return和exit的区别

1.return是堆栈返回,返回的值是给主调函数用的。主线程main结束前会默认调用exit结束进程。 2.exit用于结束进程,返回的状态码是给操作系统使用或父进程使用的。 exit是结束一个进程,它将删除进程使用的内存空间,不会回收进程的残余资源,同时把错误信息返回父进程,而return是...

2019-09-01 11:26:19

阅读数 22

评论数 0

原创 Linux命令简写和全称

https://blog.csdn.net/chinayuan/article/details/51291666

2019-08-28 17:28:28

阅读数 14

评论数 0

原创 Linux下 文件的描述符标志位、文件状态标志位

https://blog.csdn.net/kyang_823/article/details/79496362#%E4%B8%80%E6%96%87%E4%BB%B6%E6%8F%8F%E8%BF%B0%E7%AC%A6%E6%A0%87%E5%BF%97

2019-08-28 17:22:24

阅读数 93

评论数 0

转载 C++ - 算法(algorithm) 的 谓词(predicate) 详解

https://blog.csdn.net/caroline_wendy/article/details/15378055

2019-08-25 20:54:49

阅读数 14

评论数 0

原创 数据4种逻辑结构与常见的4种存储结构:

数据4种逻辑结构: 1.集合结构:数据元素之间没有任何关系. 2.线性结构:数据元素之间定义了线性关系.1对1 3.树形结构:数据元素之间定义了层次关系 1对多. 4.图状结构:数据元素之间定义了网状关系 多对多. 常见的4种数据存储结构: 1.顺序存储结构:借助数据元素之间的相对位置...

2019-08-24 21:52:24

阅读数 2113

评论数 0

转载 typedef的四种用法

https://www.cnblogs.com/csyisong/archive/2009/01/09/1372363.html

2019-08-19 09:51:44

阅读数 268

评论数 0

转载 正向代理 反向代理 负载均衡及其调度算法

正向代理:客户端想要访问一个服务器,但是它可能无法直接访问这台服务器,这时候这可找一台可以访问目标服务器的另外一台服务器,而这台服务器就被当做是代理人的角色 ,称之为代理服务器,于是客户端把请求发给代理服务器,由代理服务器获得目标服务器的数据并返回给客户端。客户端是清楚目标服务器的地址的,而目标服...

2019-08-07 16:01:55

阅读数 13

评论数 0

转载 POSIX协议是什么,协议为解决什么问题

1. POSIX解决什么问题 一般情况下,应用程序通过应用编程接口(API)而不是直接通过系统调用来编程(即并不需要和内核提供的系统调用来编程)。一个API定义了一组应用程序使用的编程接口。它们可以实现成调用一个系统,也可以通过调用多个系统来实现,而完全不使用任何系统调用也不存在问题。实际上,A...

2019-08-07 11:32:58

阅读数 484

评论数 0

原创 C++ 设计模式

https://blog.csdn.net/liang19890820/article/details/66974516

2019-08-04 10:24:49

阅读数 21

评论数 0

原创 执行路径的概念和作用

什么是执行路径: 在Linux中执行可执行文件,这个程序的执行路径就是你当前所在的路径 举例: 第一种:我在/home/zw/projects/Game_prj2/bin/x64/Debug/下执行命令"./Game_prj2.out" ,那么执行路径就是当前路径(/ho...

2019-08-03 10:09:16

阅读数 141

评论数 0

转载 什么是一维表 什么是二维表

错误概念: 一维表:是只有1行数据的? 只有2个列的?是空间上一维的,线的概念?NO 二维表:是空间上二维的,面的概念?NO 准确概念辨析 表:基础概念,1行是1条数据,1列是1个属性 只要是表,从空间上看都是二维的 从空间上是一维的,那是一个数列,不是表 一维表:每列都是独立属性,...

2019-08-02 14:31:07

阅读数 637

评论数 0

为什么我们需要在C ++中使用纯虚拟析构函数?

我理解虚拟析构函数的必要性。 但为什么我们需要纯虚拟析构函数? 在其中一篇C ++文章中,作者提到我们在想要创建抽象类时使用纯虚析构函数,但是我们可以通过将任何成员函数设置为纯虚拟来使类抽象化。 所以我的问题是: 我们什么时候才能真正使析构函数变为虚拟? 任何人都能给出一个很好的实时例子吗...

2019-07-27 18:23:33

阅读数 30

评论数 0

原创 C++各自变量的作用域和生命周期

对一个C++变量来说,有两个属性非常重要:作用域和生命周期,它们从两个不同的维度描述了一个变量--时间和空间。顾名思义,作用域就是一个变量可以被引用的范围,如:全局作用域、文件作用域、局部作用域;而生命周期就是这个变量可以被引用的时间段。不同生命周期的变量,在程序内存中的分布位置是不一样的。一个程...

2019-07-23 16:21:27

阅读数 73

评论数 1

转载 计算机中为什么用补码来存储

1.引子 你知道计算机中以什么形式存储整数吗?是符号位加值位吗?值位是按照正常的二进制方式存储吗? 如果后两个问题你都回答是,那就意味着当用3位二进制进行存储、且符号位0表示正1表示负时,1会存储成001,-1会存储成101。可惜事实不是这样,计算机中是用补码的形式而不是刚刚那种看上去很自然的...

2019-07-18 20:30:32

阅读数 518

评论数 0

原创 从vs中拷贝文件到Linux中 出现"^M" 原因及解决方法

原因:vs在windows中换行是\r\n ,Linux下\n 解决方法:%s/\r//g 这个应该更准确%s/\r$//g($表示行尾)

2019-07-15 22:40:12

阅读数 155

评论数 0

转载 多线程中常见内存冗余法传递方式(内存冗余法,即在堆上开辟空间,然后通过参数传递过去)

内存冗余法,即在堆上开辟空间,然后通过参数传递过去。 为什么这样做,主要在于节省开销,比如,当我们在创建线程时,会用到函数: 1 2 intpthread_create(pthread_t *thread,constpthread_attr_t *attr...

2019-07-14 21:22:03

阅读数 77

评论数 0

转载 完整ascii 0~255

十进制代码 十六进制代码 MCS 字符或缩写 DEC 多国字符名 ASCII 控制字符1 0 0 NUL 空字符 ...

2019-07-08 19:15:03

阅读数 703

评论数 0

翻译 SQL相关子查询与非相关子查询

SQL子查询可以分为相关子查询和非相关子查询两类。 假设Books表如下: 类编号 图书名 出版社 价格 2 c#高级应用 圣通出版 23.00 2 Jsp开发应用 机械出版社 45.00 3 高等数学 济南出版社 25.00 3 疯狂英语 清华大学出版社 32.00 非相关子查询的执行不依赖...

2019-06-29 10:43:26

阅读数 35

评论数 0

转载 sql语句中 Group By , Having, Where ,Order by执行顺序

1.Group By 和 Having, Where ,Order by这些关键字是按照如下顺序进行执行的:Where, Group By, Having, Order by。 首先where将最原始记录中不满足条件的记录删除(所以应该在where语句中尽量的将不符合条件的记录筛选掉,这样可以减少...

2019-06-28 19:51:26

阅读数 244

评论数 0

转载 where与 group by 与 having

1. GROUP BY子句必须出现在WHERE子句之后,ORDER BY子句之前. HAVING语句必须在ORDER BY子句之后。(where先执行,再groupby分组;groupby先分组,having再执行。) 2. 除聚集计算语句外,SELECT语句中的每个列都必须在GROUP...

2019-06-27 17:21:41

阅读数 7

评论数 0

转载 inet_pton 函数 htonl函数 区别

uint32_t htonl(unin32_t host32bitvalue); 参数是32bit的二进制数值,在转换地址时就是32位的主机字节序ip地址(经常用点分十进制) 用法:servaddr.sin_addr.s_addr=htonl(127.0.0.1); servaddr.sin_ad...

2019-06-14 22:47:17

阅读数 400

评论数 0

转载 Ubuntu安装后无法自动适应VMWare窗口大小的解决方法

在VMware虚拟机软件中安装的Ubuntu虚拟机的窗口不能自动调整大小的解决办法:   配置虚拟机时,发现屏幕大小太小,一般解决思路是:需要安装vmware tools(安装好Ubuntu后一般会自动下载到桌面) ,屏幕就会自适应。 问题如下图所示:   1)首先是打开虚拟机,在菜单栏...

2019-06-02 20:19:24

阅读数 442

评论数 0

转载 C++中如何修改const变量 (指针)

一、结论 声明:不同于C语言的const变量修改问题(可以通过指针间接修改const变量的值),这里只讨论C++ 里的const。 C++ const 修饰符,表示常量,即如果以后保证不会修改则声明为const,否则若要修改,那一开始为什么还要声明为const呢? 根据C++标准,对于修改c...

2019-05-31 09:08:48

阅读数 358

评论数 0

转载 linux下我们经常用到的四个应用程序的目录是/bin、/sbin、/usr/bin、/usr/sbin 区别

在linux下我们经常用到的四个应用程序的目录是/bin、/sbin、/usr/bin、/usr/sbin 。而四者存放的文件一般如下: 综述: 如果这是用户和管理员必备的二进制文件,就会放在/bin。 如果这是系统管理员必备,但是一般用户根本不会用到的二进制文件,就会放在 /sbin。...

2019-05-29 12:59:26

阅读数 375

评论数 0

转载 虚函数(virtual)为啥不能是static

静态成员函数,可以不通过对象来调用,即没有隐藏的this指针。 virtual函数一定要通过对象来调用,即有隐藏的this指针。 static成员没有this指针是关键! static function都是静态决议的(编译的时候就绑定了) 而virtual function 是动态决议的(运行时...

2019-05-08 19:31:31

阅读数 55

评论数 0

原创 extern const int c = 300;

既指定的了关键字extern又指定了一个显示的初始值的全局对象的声明将被视为该对象的定义!

2019-04-27 15:08:56

阅读数 46

评论数 0

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