自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

南抒一梦的博客

年轻没有失败

原创 GDAL入门篇——GDAL环境配置(一)

目录一.GDAL介绍1.1简介1.2 GDAL的下载与安装二.GDAL环境配置2.1环境配置2.2 环境测试一.GDAL介绍1.1简介GDAL(Geospatial Data Abstraction Library)是一个在X/MIT许可协议下的开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式。它还有一系列命令行工具来进行数据转换和处理。OGR是GDAL项目的一个分支,功能与GDAL类似,只不过它提供对矢量数据的支持。因此GDAL可以提供对栅格和.

2020-08-05 15:45:41 27

原创 Qt元对象系统简介

目录1.基本介绍2.Q_OBJECT3.元对象系统与反射机制4.qobject_cast 函数1.基本介绍元对象:是指用于描述另一个对象结构的对象。使用编程语言具体实现时,其实就是一个类的对象,只不过这个对象专门用于描述另一个对象而已。Qt 的元对象系统提供的功能有:对象间的通信、运行时类型信息和动态属性系统等元对象系统的实现需要满足以下三个条件:该类必须继承...

2020-05-10 20:59:59 116

原创 基于Qt文件断点续传技术简介

最近研究了下qt数据传输相关技术问题,数据传输在现在的qt库中已经很成熟,但是与之相关的断点续传技术仅仅依靠qt的库是不能满足的,所以针对这个问题做了简单的研究,欢迎各位同事讨论交流,话不多说,先贴几张测试图片:由于最近比较忙,具体相关的详细说明过段时间在进行整理补充,最后附上支持断点续传的库供大家学习参考,测试工程里面只是简单的测试,现在存在很多问题,后面会逐步完善好进...

2020-04-27 17:58:32 108

原创 Qt简单项目实例之(二)——多功能计算器

有问题可以加我QQ:2273864757 进行交流学习!!!!一.简单介绍整个计算器设计整体按照“插件式,微内核”进行开发,里面包含各个功能的插件,将这些插件集成到我们的主工程之上。首先,展示相关的功能截图:此计算器包含基本的加减乘除运算之外,还包含有大整数计算工具,线代计算工具,多项式求解等计算工具,可以在工具下拉菜单里进行选择:管理器可以记录我们输入的历史记录,常规...

2019-10-24 21:47:17 206 1

原创 Qt简单项目实例之(一)——2048游戏

先来看下整体效果截图:有问题可以加我QQ:2273864757 进行交流学习1.1 整体结构将整个界面抽象为一个4*4的二维矩阵,矩阵存储当前格的数字,若为空则置0。 随机在空白区域产生一个随机数,随着得分的不断增加,产生大数字的概率逐渐增大。 根据按键输入,读入方向键。并调用合并函数进行合并。2.2 界面搭建界面抽象为一个4*4的二维矩阵,我们采用Qt自带的方法进行样式...

2019-10-24 16:41:22 597

原创 Geos库学习之(三)——几何对象空间关系

目录一.基础介绍二.GEOS里面空间几何关系判断的用法三.总结一.基础介绍常见的基础几何对象主要包括点、线、面所构成的图形。在进行几何对象空间关系判断的时候,我们在GEOS里面主要使用的是DE-9IM(Dimensionally Extended nine-Intersection Model (DE-9IM)),也称为九交模型。通常我们会将一个几何对象分为三个部分:外部(ex...

2019-10-24 12:22:17 628

原创 Geos库学习之(二)——使用Geos库创建简单的几何对象

目录一.基础概念二.使用geos创建简单的几何对象一.基础概念几何图形(Geometry)是geos里面基本的操作对象,因此Geometry类就是最重要的一个类几何图形中主要有三个要素:点,线,面。坐标构成点,多点构成线,环线构成面,点线面混合构成几何集合。对应的在GEOS里面的几个类为:坐标:Coordinate(横纵坐标)点:Point(单点)、MultiPoint...

2019-10-24 12:21:58 594 1

原创 Geos库学习之(一)——Geos库介绍和编译

目录一.研究背景二 .环境搭建2.1 geos库下载2.2 库编译2.2.1 VS命令编译2.2.2 CMake生成源代码编译2.3 环境配置一.研究背景 最近在研究GIS二维几何对象的空间关系时在网上查阅了好多资料,相关的资料和例子都特别少,于是一边摸索一边总结,将自己的研究过程和遇到的问题做个简单的记录,方便日后回顾学习,也方便大家彼此学习交流...

2019-10-23 12:46:09 808

原创 GIS数据源简单总结

GIS数据来源,是指建立的地理数据库所需的各种数据的来源,主要包括地图、遥感图像、文本资料、统计资料、实测数据、多媒体数据、已有系统的数据等。GIS中的数据来源和数据类型繁多,概括起来主要有以下几种来源:地图数据地图是地理数据的传统描述形式,是具有共同参考坐标系统的点、线、面的二维平面形式的表示,内容丰富,图上实体间的空间关系直观,而且实体的类别或属性可以用各种不同的符号加以识别和表示。地图...

2019-07-04 08:43:48 1390

原创 地理坐标 VS 投影坐标

目录一.引言二.基本概念三.地理坐标系3.1大地水准面3.2 地球椭球体3.3 大地基准面四.投影坐标系4.1 投影4.2 投影带的计算4.2.16°分带法4.2.2 3°分带法一.引言地理信息系统(Geographic Information System或 Geo-Information system,GIS)有时又称为“地学信息系统”。简...

2019-06-26 20:28:48 115

原创 以C/C++语法浅谈二十三种设计模式(三)——代理模式(Proxy)

一.引言C++中的代理模式(Proxy)也被称为是委托模式,主要是为其他对象提供一种代理以控制对这个对象的访问。这样做一方面实现了业务和核心功能的分离,同时也对对象的扩展提供了方便。二.具体代码实例“父爱如山,母爱似水”,想小时候只要我们想吃什么好吃的,给爸爸妈妈说一声,他们就会为我们买来一大堆好吃的,假设现在我们想吃苹果,但是我们懒啊,所以委托爸爸去给我们买苹果,爸爸作为我们的委托人...

2019-04-10 17:20:54 216

原创 C/C++/中宏特殊字符的含义及用法总结(“#”、“##”、"#@"、“\”等等)

在C/C++中,宏定义是由define完成的,宏定义中有几种常见的特殊字符需要我们了解,常用的特殊字符有以下几种:#:在宏展开的时候会将#后面的参数替换成字符串; 字符串化 ##:将前后两个的单词拼接在一起; 连接化 #@:将值序列变为一个字符; 字符化 \:将两行连接起来。行连接化我们可以使用这些特殊的字符做一些简单的测试例子:1.# 测试测试代码如下:#i...

2019-04-10 16:31:40 1254 3

原创 STL标准模板库用法总结——总纲

目录一.引言二.STL六大组件2.1 容器(containers)2.2 算法(algorithms)2.3 迭代器(iterators)2.4 仿函数(functors)2.5 配接器(adapters)2.6 配置器( allocators )三.各组件详细介绍3.1 容器(containers)3.1.1 序列式容器(Sequence Contai...

2019-04-08 10:47:07 96

原创 Cmake在Window下的使用(附图文)

step1:最近由于工作和学习的需要,要编译各个版本的库文件供第三方使用,我在网上查找了很多资料,加上自己的摸索,将具体的使用步骤做一简单的总结。首先,我们需要下载Cmake的工具包,下载地址为:https://download.csdn.net/download/weixin_39951988/11045904下载之后进行解压,得到的文件夹如下所示:我们打开bin文件后,运行...

2019-03-21 18:06:24 2599 1

原创 C/C++指针详解之基础篇(史上最全最易懂指针学习指南!!!!)

目录一.变量的内存实质到1.1变量的实质1.2 赋值给变量1.3变量在哪里?二. 指针是个什么东西?三. 二级指针(指针的指针)3.1 定义与初始化3.2间接数据访问3.2.1.改变一级指针指向3.2.2改变 N-1 级指针的指向3.2.3二级指针的步长四. 指针与数组4.1 指针与数组名4.1.1 通过数组名访问数组元素4....

2019-02-20 13:30:32 52916 35

原创 浅谈数据结构排序算法之(一)——冒泡排序

目录一.前言    1.排序定义    2.排序的稳定性评估    3. 内排序与外排序    二.冒泡排序     1.基本定义     2.最简单的交换排序     3.正宗的冒泡排序    4.优化升级版的冒泡排序三.实例代码1.简单的交换排序2.正宗的冒泡排序3.优化后的冒泡排序 四. 分析总结一.前言    1.排序定义...

2019-01-21 15:42:42 85

原创 数据结构浅浅析之(一)——线性表(List 附C++代码)

一.写在前面“生活不止眼前的苟且,还有诗和远方的田野,你赤手空拳的来到人世间,为找到那篇海不顾一切”,高晓松说。我们学习开发这么多年,也明白“开发不止当下的bug,还有将来和未发现的bug,我们在开发的路上不断探索,只为找寻那优质的产品”。开发犹练功,可分为外功招式和内功心法,自计算机问世以来,曾经出现了好多外功招式(编程语言)以及内功心法(数据结构)。各大外功招式都曾名噪一时,有被时间遗忘的...

2019-01-15 10:58:24 90

原创 Geos库学习之(四)——几何对象空间关系判断实例

上篇我们主要对几何对象之间的关系做了简单的说明,在GEOS中的方法使做了大概的了解,本篇我们以程序实例对这几种关系进行简单的验证说明,直接上代码:// GeoTest.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#include <stdlib.h>#include "geos....

2019-10-24 12:51:13 715 1

原创 学习C/C++,这些基础知识规则你都理解了吗??

目录写在前面一.struct的异同二.Struct和Class的区别三.判断一段程序是由C 编译程序还是由C++编译程序四.C 和C++的异同五."引用"与“指针”的异同六.C++中值得传递方式种类七.C++ 中virtual与inline的含义八.编译中的Debug 与Release各是什么含义?九.函数assert 的用法十.const 与 #de...

2019-06-06 13:14:45 260

原创 STL标准库序列式容器(Sequence Containers)用法总结(一)—— Vector

目录一.引言二.vector包含的方法2.1初始化方法2.2 赋值运算符重载2.3 Vector基本操作2.3.1 assign用法2.3.2 Vector常用方法介绍三. Vector的构造与内存管理一.引言众所周知,常用的数据结构包括数组(array),链表((list),树(tree),堆栈(stack),队列(queue),散列表(hash tab...

2019-04-09 13:46:12 233

原创 C/C++/之运算符重载总结(史上最简单易懂!!!)

所谓重载,就是赋予新的含义。函数重载(Function Overloading)可以让一个函数名有多种功能,在不同情况下进行不同的操作。运算符重载(Operator Overloading)也是一个道理,同一个运算符可以有不同的功能。我们以简单的一个点Point类来说明各运算符重载的具体实现,在实际的工作学习中,我们一般根据自己的需求来重写我们自己的运算符重载。代码如下:#include...

2019-04-08 17:49:46 732

原创 HDF5数据解析总结(附图文)

Step1:HDF5数据使用介绍:https://blog.csdn.net/Mrhiuser/article/details/69603826Step2:HDF5数据解析快速上手:https://blog.csdn.net/david830_wu/article/details/63782190Step3:使用第三方工具Cmake编译HDF5解析库:https://blog....

2019-03-23 10:20:45 2038

原创 Linux(ubuntu)之软件安装

目录一. apt 1.1 使用apt安装软件 1.2 使用apt卸载软件 1.3 apt­get 常用参数  二. deb包安装三 .源码安装四. 搭建一个apt源服务器 在ubuntu当中,安装应用程序知道的有三种方法,分别是apt­get、dpkg和安装源码包三种。下面针对每一种方法各举例来说明。一. apt apt 英文全拼为 Advanced Pac...

2019-02-22 17:04:14 285

原创 C/C++中rand()函数随机生成任意区间的数

我们都知道在C/C++中有一个生成随机数的函数rand(),可是这个函数所生成的随机数的取值范围为:0-32767,往往在具体的项目工作中我们需要生成在某一区间的随机数,这时我们可以用如下的代码函数进行实现之:#include <iostream>#include <stdlib.h>using namespace std;const int MAX_RAN...

2019-02-21 16:12:32 3475

原创 Linux(CentOS7)之用户管理

Linux的多用户概念是指多个用户同时可以使用这个系统。每个用户一般在/home下的都有自己的用户目录,root的家目录在/root。用户执行任务的时候一般在自己的家目录中执行,用户之间互相不影响。1.查看当前登录用户2.查看所有用户信息cat /etc/passwd 3.  查看用户在哪些组里面groups [user] #如果不填user,代表当前用户所在的组...

2019-02-20 17:32:50 1939

原创 C/C++指针详解之提高篇(史上最全最易懂指针学习指南!!!!)

目录一. 堆空间与指针的相爱相杀1.1 堆上一维空间1.1.1 返回值返回(一级指针)1.1.2 参数返回(二级指针)1.2堆上二维空间1.2.1指针作返值输出1.2.2 空间申请与释放1.2.3 多级指针作参数输出1.2.4 具体实例之序列加密二. const修饰指针1.1const 修饰变量1.2 const 修饰指针1.3co...

2019-02-20 13:31:56 6112 11

原创 Boost库环境配置(0)

目录一.前言1.1 环境1.2 boost下载地址二.配置过程2.1 准备工作2.1 配置2.1.1 Debug配置2.1.1 Realse配置三.测试一.前言1.1 环境windows7 操作系统 vs2010版本 32编译器 boost 1_491.2 boost下载地址https://download.csdn.net/downlo...

2019-02-19 16:41:06 144

原创 Linux(CentOS7)下文件操作(权限、打包、解包操作)

目录一.文件权限操作1.1 chmod 更改文件权限1.1.1 文字设定法1.1.2 数字设定法1.1.3 目录文件权限1.1.4 非目录文件权限1.2 chown更改文件拥有者 二. 文件(文件夹)压缩操作2.1 tar 2.1.1 不压缩打包以及解包2.1.2 打gz压缩包以及解包2.1.3 打bz2压缩包以及解包:2.2 rar 2.3...

2019-02-19 11:32:39 1790

原创 Linux(CentOS7)常用命令详解 史上最全!!!!!!!!!

目录一.Linux树型目录结构二.常用命令详解2.1 ls 命令2.1.1 ls -l命令2.1.2 ls -a命令2.2 stat命令 2.3 cd命令2.4 pwd命令2.5 which命令2.6 touch命令 2.7 mkdir 命令2.8 rmdir 命令 2.9 rm 命令 2.10 mv命令2.11 cp命令2.12 c...

2019-02-18 17:45:27 18768

原创 CentOS 7 下安装gcc、g++、gdb教程

,在本地没有安装包的情况下,需要先将网络调通。在Linux下安装软件一定要在root权限下进行安装。切换方法为 su  root,然后输入密码进行切换第一种方法安装gcc:     在root权限下输入: yum install gcc 然后回车然后输入:y   就行 等安装好之后可以查看gcc是否安装成功:用命令 which gcc安装安装c++:在成功安装了gc...

2019-02-15 17:26:52 760

原创 C++之文件流操作(File Stream)

目录一.引言二.文件流对象(fstream)2.1 流对象的定义2.2 流对象关联文件2.2.1 .open 函数2.2.2 关闭流对象(close 函数)三. 文件读写3.1 读写文件本文件3.2 读写二进制文件3.3 随机文件读写一.引言首先我们自实现对 FILE*fp 的包装,实现对象对文件的访问。实现成员函数 put/get 函数。例子代码如...

2019-02-15 10:13:58 3426

原创 (&)按位与/(&&)逻辑与、(|)按位或/(||)逻辑或有什么区别?

按位与 & 和按位或 | 输出运算结果,逻辑与 && 和逻辑或 || 输出true 或者 false   例如: 1&2 = 0 1&&2 = 1  1|2 = 3    1||2 = 1  按位与 & 和按位或 | 对所有的表达式都要判断,逻辑与 && 和逻辑或 ||运算符第一个表达式不成立的话,后面的表达式不运算,直接返...

2019-02-15 09:51:15 3144

原创 C++之继承提高

阅读本篇文章之前假设您已经了解有关类继承的基础知识。具体可参考《C++之继承提高》一篇,链接在文章底部。目录一. 详解继承的几种方式1.1 类别1.1.1 public继承1.1.2 protected继承1.1.3 private继承1.2 派生类的成员标识1.2.1 表格示例1.2.2 图示示例1.3 类的作用域运算1.3.1 Shadow1.3...

2019-02-14 14:01:53 113

原创 C++之继承基础

目录一.引言1.1 为什么要引入继承1.2 引例二.基础知识2.1 定义2.2 继承的方式2.3派生类的组成2.4派生类的构造2.5 派生类的拷贝构造2.6 派生类的友元函数2.7 派生类的析构函数一.引言1.1 为什么要引入继承在 C++中代码的可 重用性(software reusability)是通过继承(inheritance)这一机...

2019-02-14 10:08:17 117

原创 C++之explicit 关键字

关键字 explicit 可以禁止"单参数构造函数"被用于自动类型转换。即 explicit仅用于单参构造(默认参数构成的单参亦算)。转化多是刻意而为之,以隐式的形式发生,为了示意同正常构造的不同,常用explicti 关键字修饰,要求在转化时 显示的调用其构造器完成转化。代码如下:#include <iostream>#include <stdlib.h>...

2019-02-13 15:04:03 132

原创 C++之友元(Friend)用法总结

目录一.引言二.友元(Friend)与类之间的关系 2.1 同类间无私处 2.2异类间有友元 2.3友元不是成员三.友元函数(Friend fucntion)3.1全局函数做友元3.2成员函数做友元3.3类做友元(Friend class)四.总结4.1声明位置4.2友元利弊4.3注意事项一.引言最常见的获取数据成员的方式就是Set方法和...

2019-02-13 10:05:11 116

原创 软件设计原则代理(Delegate)类设计

好的软件工程有两个基本原则,一是接口与实现的分离,二是隐藏实现细节。为此,我们向用户提供头文件,而实现在一个 cpp 文件中。但是,用户提供的头文件中,还是有些 private,虽然用户不能访问,但还是把私有信息暴露给了客户。通过向客户提供只知道类的 public 接口的代理类,就可以使客户能够使用类的服务,而无法访问类的实现细节。首先我们定义一个普通类:class T{public...

2019-02-12 14:03:04 114

原创 数据结构浅浅析之(三)——树(Tree)(下篇——应用提高 附C++代码)

目录一.写在前面二.二叉树的存储结构      1.二叉树的顺序存储结构      2.二叉树的链式存储结构三.代码实例四.二叉树的扩展一.写在前面       本篇文章紧随上篇文章《数据结构浅浅析之(三)——树(Tree)(上篇——基础知识)》之后。假设现在我们已经了解了数据结构的有关树(tree)的基本知识。如果不太清楚树的基本知识,建议先去看看上篇有关树的基础...

2019-01-18 15:35:07 89

原创 数据结构浅浅析之(三)——树(Tree)(上篇——基础知识 附C++代码)

目录一.引言二.基础知识 树(tree)的定义在任意一棵非空树中存在以下特性:注意几点:结点的分类结点间的关系其他相关概念线性结构和树结构的比较三.最简单的树——二叉树(Binary Tree)满二叉树完全二叉树二叉树的遍历         1.前序遍         2.中序遍历3.后序遍历4.层次遍历一.引言     ...

2019-01-18 11:31:08 186

原创 数据结构浅浅析之(二)——栈和队列(Stack && Queue 附C++代码)

一.写在前面栈(stack)是限定仅在表尾进行插入和删除操作的线性表(List)。   栈先进后出,后进先出(Last In First OUt) 队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表(List)。  队列先进先出,后进后出(First In First Out)二.栈(Stack)基本概念        我们在进行栈操作时,将允许插入和删除的...

2019-01-17 16:02:19 154 1

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