自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 收藏
  • 关注

原创 旋转的几种数学表示方法

旋转矩阵:运算方便;使用9个量描述3自由度旋转,引入额外约束,求导困难。旋转向量:紧凑的表示旋转;具有周期性。欧拉角: 直观,用户友好,需要指定旋转顺序,存在万向节死锁问题,无法进行球面平滑插值。四元数:紧凑的不带奇异的表示方法;对用户来讲不太直观,用求单位四元数,表示旋转也会过参数化。...

2022-05-06 22:50:51 846

原创 gnutls_handshake() failed: Error in the pull function.

新安装的镜像Ubuntu 16.04 LTS 拉取git库时报错,gnutls_handshake() failed: Error in the pull function.执行下面操作后可以正常拉取git上的库了#取消代理git config --global --unset http.https://github.com.proxy

2022-03-08 00:08:33 4170 1

原创 读取raw格式数据,OpenCV显示

void read_raw(){ int w = 640;//原始图像的高 int h = 480;//原始图像的宽 FILE* fp = NULL; //定义指针s fp = fopen("F:\\Image\\test_depth\\dist_1200mm\\depth_640x480_18376_0243.raw", "rb+"); Mat src; src.create(Size(w, h), CV_16UC1); fread(src.data, si.

2022-02-11 09:30:38 3620

原创 QT编译错误:undefined reference to `vtable for” ClassName

1. 右键项目, 点击 “Clean”2. 右键项目,点击 “Run qmake”3. 点击QT Create最上面的Build,执行“Run”执行完上述步骤后编译通过了。看别人的文章也有可能其他问题导致这个编译错误,如果这个办法没有用的话,可以参考别人的解决办法。...

2021-10-21 18:17:16 225

原创 vs2019+QT新建UI窗口

在vs2019中新建一个QT的widget窗口第一步:第二步:其中可以选择MainWindow或者Widget窗口,填写好ui的名字。第三步:建立好对应ui名字的 .h 和 .cpp文件即可。双击新建的ui文件,如果打不开的话,可以重新配置一下qt designer。先移除qt designer(如果不能移除的话直接添加另一个同名的qt designer),然后添加qt安装路径下的qt designer.exe为默认值,重启项目就可以打开.ui文件了。新建的ui窗

2021-03-22 14:50:34 8638 2

转载 高效遍历Mat图片的指针方式

https://blog.csdn.net/lehuoziyuan/article/details/84031429?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-3.not_use_machine_learn_pai&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-3.not_use_machine

2020-12-25 09:34:31 93

原创 在anaconda下安装第三方库指定版本号和指定镜像源

python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu==1.13.2

2020-05-13 18:27:20 1519

原创 TCP/IP协议族

TCP/IP协议族是一个四层协议系统:自下而上分别是数据链路层,网络层,传输层,应用层。数据链路层实现了网卡接口的网络驱动程序,以处理数据在物理媒介(比如以太网,令牌环)上的传输。两个常用的协议是ARP协议(Address Resolve Protocol,地址解析协议)和RARP(Reverse Address Resolve Protocol,逆地址解析协议)。他们实现了IP地址和机...

2019-05-14 14:19:35 125

转载 将文件间的编译依存关系降至最低的例子

在说这一条款之前,先要了解一下C/C++的编译知识,假设有三个类ComplexClass, SimpleClass1和SimpleClass2,采用头文件将类的声明与类的实现分开,这样共对应于6个文件,分别是ComplexClass.h,ComplexClass.cpp,SimpleClass1.h,SimpleClass1.cpp,SimpleClass2.h,SimpleClass2.cpp。...

2019-05-07 11:09:20 118

原创 const_cast / dynamic_cast / static_cast / reinterpret_cast

一 const_castconst_cast是一个强制类型转换操作符。《C++ Primer》中是这样描述它的:1.将转换掉表达式的const性质。2.只有使用const_cast才能将const性质性质转化掉。试图使用其他三种形式的强制转换都会导致编译时的错误。(添加const还可以用其他转换符,如static_const)3.除了添加const或删除const特性,使用cons...

2019-05-06 19:35:12 196

原创 构造函数语义学

一Default constructor的建构操作nontrivial default constructor的四种情况:1. “ 带有 Default Constructor ” 的 Member Class Objectclass Foo { public: Foo(); Foo(int);}class Bar{ ...

2019-04-20 12:14:51 200

转载 C++中的 struct 与 class 的区别

转载来源:http://blog.sina.com.cn/s/blog_48f587a80100k630.htmlC++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能。struct能包含成员函数吗? 能!struct能继承吗? 能!!struct能实现多态吗? 能!!!既然这些它都能实现,那它和class还能有什...

2019-04-19 16:29:09 95

原创 Linux 文件与文件系统的压缩,打包与备份

gzip : 可以解开compress, zip, gzip等软件所压缩的文件。gzip [-cdtv#] 文件名 zcat 文件名.gz 读出压缩文件的内容 gzip压缩 会把原始文件删除,只留下压缩文件 gzip解压缩 会把 压缩文件删除,只留下解压出来的文件xz : 用法跟gzip 几乎一模一样压缩比更好,但是用时更久打包指令 : tar压缩 : ...

2019-04-16 11:49:21 106

原创 Linux文件系统

区块的组成 :data block(数据区块)、Inode table(inode 表格)、 superbolck(超级块)、filesystem description(文件系统描述说 明)、 block bitmap(区块对照表)、 inode bitmap(inode对照表)data block : 放置文件内容数据地方 inode table : 记录文件的属性以及该文件实际数据是...

2019-04-15 21:35:57 187

原创 Linux基础指令的操作

在你没有更改默认的快捷键的时候:对整个屏幕截图: PrintScreen对活动窗口截图: Alt+PrintScreen对任意矩形截图: Shift+PrintScreen以上三个快捷键再加上Ctrl,就会默认复制截图到粘贴板1. 显示日期的指令 : date2. 显示日历的指令: calcal cal 2019...

2019-04-13 22:23:19 87

原创 Effective c++ 阅读笔记

第一节 让自己习惯 C++条款 2:尽量以const, enum, inline替换#define对于单纯常量,最好以const对象或enums 替换 # define 对于形似函数的宏,最好改用inline函数替换# define条款 3: 尽可能使用const将某些东西声明为const可帮助编译器侦测出错误用法。const可被施加于作用域内的对象、函数参数。参数返回类型、...

2019-04-13 19:45:34 138

原创 Effective C++ 关键字explicit

首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式).那么显示声明的构造函数和隐式声明的有什么区别呢? 我们来看下面的例子: class CxString // 没有使用explicit关键...

2019-04-13 18:48:25 89

原创 Effective C++ Logic constness 和 Bitwise constness

什么是 Logic constness有以下类 BigArray,其成员 vector<int> v; 是一个数组数据结构,为了让外部可以访问该数组,此类提供了一个 getItem 接口,除此之外,为了计算外部访问数组的次数,该类还设置了一个计数器 accessCounter ,可以看到用户每次调用 getItem 接口,accessCounter 就会自增,很明显,这里的成员 v...

2019-04-13 17:22:52 559

原创 c++ 知识点总结:

# include<iostream.h>void f(){ static int i = 15; i++; cout<< "i=" << i << endl;}void main(){ for(int k = 0; k < 2; k++) f();}上面这段代码输出结果为 ...

2019-04-05 01:02:48 223

原创 STL 之红黑树

R-B Tree,全称是Red-Black Tree,又称为“红黑树”,它一种特殊的二叉查找树。红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(Black)。红黑树的特性:(1)每个节点或者是黑色,或者是红色。(2)根节点是黑色。(3)每个叶子节点(NIL)是黑色。[注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点!](4)如果一个节点是红色的,则它的子节点...

2019-03-28 17:17:49 1094

原创 STL 之 deque

vector 是单向开口的连续线性空间,deque 则是㆒种双向开口的连续线性空间。 所谓双向开口,意思是可以在头尾两端分别做元素的安插和删除动作,如图 4-9。 vector 当然也可以在头尾两端做动作(从技术观点),但是其头部动作效率奇差, 无法被接受。 deque 和 vector 的最大差异,㆒在于 deque 允许于常数时间内对...

2019-03-27 17:18:38 77

原创 STL之 list 和 slist

相较于 vector 的连续线性空间,list 就显得复杂许多,它的好处是每次安插 或删除㆒个元素,就配置或释放㆒个元素空间。因此,list 对于空间的运用有绝 对的精准,㆒点也不浪费。而且,对于任何位置的元素安插或元素移除,list 永 远是常数时间。 ...

2019-03-27 17:09:05 453

原创 STL 之 vector

众所周知,常用的数据结构不外乎 array(数组)、list(串行)、tree(树)、stack (堆栈)、queue(队列)、hash table(杂凑表)、set(集合)、map(映像表)… 等等。根据「资料在容器㆗的排列」特性,这些数据结构分为序列式(sequence) 和关系型(associative)两种。vector 的数据安排以及操作方式,与 array 非常像似。两者的唯㆒...

2019-03-27 16:42:28 93

原创 STL值priority_queue

顾名思义,priority_queue 是一个拥有权值观念的 queue,它允许加入新元素、 移除旧元素,审视元素值等功能。由于这是一个 queue,所以只允许在底端加入 元素,并从顶端取出元素,除此之外别无其它存取元素的途径。 priority_queue 带有权值观念,其内的元素并非依照被推入的次序排列,而是 自动依照元素的权值排列(通常权值以实值表示)。权值最高者,排在最前面。预设情况下...

2019-03-27 11:32:29 224

原创 STL之 heap

heap 并不归属于 STL 容器组件,它是个幕后英雄,扮演 priority queue的推手。顾名思义,priority queue 允许使用者以任何次序将任何元素推入 容器内,但取出时一定是从优先权最高(也就是数值最高)之元素开始取。binary max heap 正是具有这样的特性,适合做为 priority queue 的底层机制。heap是一个完全二叉树。这有一个极大好处:我们可 ...

2019-03-27 10:54:23 130

原创 STL之 stack和queue

1. stack以某种既有容器做为底部结构,将其接口改变,使符合「先进后出」的特性,形 成一个 stack,是很容易做到的。deque 是双向开口的数据结构,若以 deque 为 底部结构并封闭其头端开口,便轻而易举㆞形成了㆒个 stack。因此,SGI STL 便 以 deque 做为预设情况下的 stack 底部结构。由于 stack 系以底部容器完成其所有工作,而具有这种「修改某物接口,...

2019-03-27 09:58:06 152

原创 c++ 位运算

1. (data + 8 - 1) &amp; (8 - 1) 把 data上调至8 的倍数,同理,也可以改成16,32...的倍数。int round_up(int n){ int temp2 = (n + 8 - 1); int temp = ~(8 - 1); cout &lt;&lt; (bitset&lt;num&gt;)temp2 &lt;&lt; endl;...

2019-03-16 21:35:37 246

转载 STL学习笔记之union obj

最近看STL源码剖析时遇到了一个有趣union的用法,简单谈谈自己的看法STL第二级空间配置器中,自由链表的节点结构如下:union obj{union obj * free_list_link;char client_data[1];};书上给的解释是这样的:“上述obj所用用的是union,由于union之故,从其第一字段观之,obj可被视为—个指针,指向相同形式的另一个obj。从...

2019-03-16 20:10:03 486 1

原创 c++中的 trivial destructor

如果用户不定义析构函数,而是用系统自带的,则说明,析构函数基本没有什么用(但默认会被调用)我们称之为trivial destructor。反之,如果特定定义了析构函数,则说明需要在释放空间之前做一些事情,则这个析构函数称为non-trivial destructor。如果某个类中只有基本类型的话是没有必要调用析构函数的,delelte p的时候基本不会产生析构代码。 在C++的类中如果只有...

2019-03-16 16:04:12 190

原创 关于STL源码的set_new_handler

问题背景  在阅读侯杰的《STL源码剖析》的时候,在书中的p45页遇到一段代码,书中并没有给予详细的解释,查阅资料发现网上的解释并不是那么尽如人意,在查阅了《effective C++》这本书之后,总结写出了这篇博客。书中的“问题代码”:template&lt;class T&gt;inline T* _allocate(ptrdiff_t size,T*){ set_new_...

2019-03-16 15:09:40 117

原创 size_t ptrdiff_t

两个指针相减的结果的类型为ptrdiff_t,它是一种有符号整数类型。减法运算的值为两个指针在内存中的距离(以数组元素的长度为单位,而非字节),因为减法运算的结果将除以数组元素类型的长度。所以该结果与数组中存储的元素的类型无关。类似的还有如下类型:(点击这里)size_t是unsigned类型,用于指明数组长度或下标,它必须是一个正数,std::size_t.设计size_t就是为了...

2019-03-16 15:03:10 130

原创 c++ 六大组件与功能

STL提供六大组件,彼此可以嵌套使用。1.容器:各种数据结构,比如vector,list,set,map,deque,用来存放数据。从实作的角度看,STL 容器是一种 class template。就体积而言,这一部份很像冰山在海面下的比率。2.算法:各种算法如sort,search,copy,erase。从实作的角度看,STL 算法是一种 function template。3.迭代...

2019-03-16 14:24:38 1879

原创 leetcode 95 & 96 解题思路

95.Unique Binary Search Trees IIGiven an integern, generate all structurally uniqueBST's(binary search trees) that store values 1 ...n.Example:Input: 3Output:[ [1,null,3,2], [3,2,nul...

2019-03-15 10:26:43 241

原创 霍夫丁不等式

2019-03-08 22:10:06 184

转载 口袋算法与PLA

虽然我们证明了PLA最终会停下来,但是PLA存在以下几个问题:1、PLA假设的前提是数据线性可分,但是很多情况下都是线性不可的;2、即使PLA最终停下来,但是我们并不知道它什么时候会停下来。由于现实情况的复杂性,我们一般情况下我们几乎找不到完美的线性可分的数据,所以这时候计算机科学家们想到了一个办法,那就是找到一条线,这条线所犯的错误最少,用它来替代精准的线。数学表达式如下:上...

2019-03-08 21:31:18 458

转载 感知机

from numpy impor...

2019-03-08 20:32:02 140

转载 进程和线程的区别

进程进程是资源(CPU、内存等)分配的基本单位,它是程序执行时的一个实例。程序运行时系统就会创建一个进程,并为它分配资源,然后把该进程放入进程就绪队列,进程调度器选中它的时候就会为它分配CPU时间,程序开始真正运行。进程有五种状态:新建态,就绪态,运行态,等待态,终止态。状态之间转换如下图:线程线程是程序执行时的最小单位,它是进程的一个执行流,是CPU调度和分派的基本单位,一个...

2019-03-08 10:29:14 65

原创 整数中1出现的次数(从1到n整数中1出现的次数)

题目描述求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。解析:可以先计算最高位1的个数,然后再计算低位1的个数,找出规律...

2019-03-07 20:37:24 161

转载 在c++程序中调用被C编译器编译后的函数,为什么要使用extern “C”

c/c++函数调用约定:c/c++函数调用约定一、原题:二、详细说明:现在,在一个工程中;有一个test.c文件;一个test1.cpp文件;//test.c#include&lt;stdio.h&gt;int Add(int a,int b){ return a+b;}1234567(1)使用extern int Add(int,int);声...

2019-03-06 10:16:47 195

转载 C++ 中static关键字的作用

C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。1.面向过程设计中的static1.1静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下://Example 1#include &lt;io...

2019-03-06 10:09:46 200

空空如也

空空如也

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

TA关注的人

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