自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(103)
  • 资源 (6)
  • 收藏
  • 关注

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

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

2019-10-21 12:25:02 2484

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

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

2019-09-26 18:30:52 256

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

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

2019-09-16 10:29:44 256

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

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

2019-09-15 16:43:03 389

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

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

2019-09-12 10:38:48 171

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

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

2019-09-12 10:33:50 1135

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

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

2019-09-08 21:07:14 191

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

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

2019-09-07 21:54:10 665

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

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

2019-09-04 20:03:32 282

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

“连接”:这个连接并不是真正意义上的连接,称之为“虚电路”,其实也并不是说A和B之间震荡建立了一条连接,或者说保证了路由路径是一致的,因为路由选择并不是传输层控制的,传输层负责流量控制和差错控制,因此所有的拥塞控制和路由选择其实是IP协议的工作,所以说,TCP怎能保证路由路径是一样的呢,如果出现网络拥堵,必然会重新选择路径。那么这个连接究竟是什么呢?答案是:状态和序列号,以及错误校验(可以查看...

2019-09-03 09:29:58 5702

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

信号量(semaphore[ˈseməfɔ:(r)])用在多线程多任务同步的,一个线程完成了某一个动作就通过信号量告诉别的线程,别的线程再进行某些动作。而互斥锁(Mutual exclusion,缩写 Mutex)是用在多线程多任务互斥的,一个线程占用了某一个资源,那么别的线程就无法访问,直到这个线程unlock,其他的线程才开始可以利用这个资源。比如对全局变量的访问,有时要加锁,操作完了,在解锁...

2019-09-02 11:16:18 403

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

内核在创建进程时,会同时创建task_struct和进程相应堆栈。每个进程都会有两个堆栈,一个用户栈,存在于用户空间,一个内核栈,存在于内核空间。当进程在用户空间运行时,CPU堆栈寄存器的内容是用户堆栈地址,使用用户栈。当进程在内核空间时,CPU堆栈寄存器的内容是内核栈地址空间,使用的是内核栈。当进程因为中断或系统调用进入内核时,进程使用的堆栈也需要从用户栈到内核栈。进程陷入内核态后,先把用户...

2019-09-01 12:02:01 485

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

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

2019-09-01 12:01:27 3907

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

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

2019-09-01 11:43:55 753

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

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

2019-09-01 11:26:19 215

原创 Linux命令简写和全称

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

2019-08-28 17:28:28 138

原创 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 1001

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

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

2019-08-25 20:54:49 140

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

数据4种逻辑结构:1.集合结构:数据元素之间没有任何关系.2.线性结构:数据元素之间定义了线性关系.1对13.树形结构:数据元素之间定义了层次关系 1对多.4.图状结构:数据元素之间定义了网状关系 多对多.常见的4种数据存储结构:1.顺序存储结构:借助数据元素之间的相对位置来表示元素之间的逻辑结构.(vector动态数组、deque双端队列、stack栈容器、queue队...

2019-08-24 21:52:24 21877

转载 typedef的四种用法

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

2019-08-19 09:51:44 943

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

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

2019-08-07 16:01:55 99

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

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

2019-08-07 11:32:58 3673

原创 C++ 设计模式

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

2019-08-04 10:24:49 75

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

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

2019-08-03 10:09:16 4116 1

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

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

2019-08-02 14:31:07 9261 1

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

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

2019-07-27 18:23:33 189

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

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

2019-07-23 16:21:27 374 1

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

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

2019-07-18 20:30:32 3512 4

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

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

2019-07-15 22:40:12 1222

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

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

2019-07-14 21:22:03 807

转载 完整ascii 0~255

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

2019-07-08 19:15:03 1217

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

SQL子查询可以分为相关子查询和非相关子查询两类。假设Books表如下:类编号 图书名 出版社 价格2 c#高级应用 圣通出版 23.002 Jsp开发应用 机械出版社 45.003 高等数学 济南出版社 25.003 疯狂英语 清华大学出版社 32.00非相关子查询的执行不依赖于外部的查询。执行过程:(1)执行子查询,其结果不被显示,而是传递给外部查询,作为外...

2019-06-29 10:43:26 342

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

1.Group By 和 Having, Where ,Order by这些关键字是按照如下顺序进行执行的:Where, Group By, Having, Order by。首先where将最原始记录中不满足条件的记录删除(所以应该在where语句中尽量的将不符合条件的记录筛选掉,这样可以减少分组的次数)然后通过Group By关键字后面指定的分组条件将筛选得到的视图进行分组接着系统根据H...

2019-06-28 19:51:26 862

转载 where与 group by 与 having

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

2019-06-27 17:21:41 149

转载 inet_pton 函数 htonl函数 区别

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

2019-06-14 22:47:17 1450

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

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

2019-06-02 20:19:24 3310

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

一、结论声明:不同于C语言的const变量修改问题(可以通过指针间接修改const变量的值),这里只讨论C++ 里的const。C++ const 修饰符,表示常量,即如果以后保证不会修改则声明为const,否则若要修改,那一开始为什么还要声明为const呢?根据C++标准,对于修改const变量,属于:未定义行为(指行为不可预测的计算机代码),这样一来此行为取决于各种编译器的具体实现...

2019-05-31 09:08:48 1584

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

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

2019-05-29 12:59:26 1106

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

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

2019-05-08 19:31:31 888

原创 extern const int c = 300;

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

2019-04-27 15:08:56 219

visual c++ 2010 入门经典(书和源码) part2

visual c++ 2010 入门经典(书和源码) 这是第二部分,需要下载part1一同解压。里面有中文版的pdf和书本源码以及课后练习源码三部分。

2018-05-13

visual c++ 2010 入门经典(书和源码) part1

visual c++ 2010 入门经典(书和源码) 这是第一部分,需要下载part2一同解压。里面有中文版的pdf和书本源码以及课后练习源码三部分。

2018-05-13

visual c++ 2012 入门经典 (全套) 中文pdf版的书+书上的源代码和练习的源代码都全的

这是全套的,不分上下册,中文pdf版的书和书上的源代码以及练习的源代码全都有

2018-05-13

空间数据挖掘理论与应用 第2版 ,李德仁,王树良,李德毅著

空间数据挖掘理论与应用 第2版 ,李德仁,王树良,李德毅著。自己花钱买的pdf版完整版

2018-05-06

汤国安版 ArcGIS地理信息系统空间分析实验教程(第二版) 实验 练习 光盘 数据 资料

汤国安版的ArcGIS地理信息系统空间分析实验教程(第二版)实验数据资料

2018-05-06

空空如也

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

TA关注的人

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