C++
Zuo丶
热爱生活,享受BUG
展开
-
class和#include 的区别
用#include1.可以使用#include包含空间内类的API。2.会是两个文件关联起来,一个文件的改变,会在编译的时候让多个文件需要重新编译,加大了编译的时间。用class1.不能知道文件内类的信息。2.不会加大编译时间。3.一般用在仅需要使用这个类的指针、引用、函数返回值的场合。原创 2016-01-13 20:54:01 · 880 阅读 · 1 评论 -
C++虚函数简析
C++的虚函数是其实现多态的基础,今天在这里分享一下我对C++虚函数相关知识的系统总结,技术有限,如有不当,欢迎指正。 在将内容前,将大致涉及到的内容图解如下: 1. 有无虚函数在继承中的区别//-- Zuo add on 2018-04-07class A{public: virtual void fun(){ std::cout <<...原创 2018-04-07 11:10:48 · 750 阅读 · 0 评论 -
typedef详解
typedef用来声明一个别名,typedef后面的语法,是一个声明。本来笔者以为这里不会产生什么误解的,但结果却出乎意料,产生误解的人不在少数。罪魁祸首又是那些害人的教材。在这些教材中介绍typedef的时候通常会写出如下形式: typedef int PARA; 这种形式跟#define int PARA几乎一样,如前面几章所述,这些教材的宗旨是由浅入深,但实际做出来的行为却是以偏盖全。的确,转载 2018-02-10 19:41:36 · 975 阅读 · 0 评论 -
Kd-Tree算法原理简析
本文讲解旨在讲解Kd-Tree(K-demension tree)的一些粗浅的原理,以及其在计算机视觉的一些应用,既是总结了自己,也是分享给大家,希望有所帮助。 Kd-Tree是从BST(Binary search tree)发展而来,是一种高维索引树形数据结构,常用于大规模高维数据密集的查找比对的使用场景中,主要是最近邻查找(Nearest Neighbor)以及近似最近邻查找(App...原创 2017-08-22 23:31:15 · 27369 阅读 · 10 评论 -
C++中int、string等常见类型转换
初学C++,总结下在实践中对于几种常见内置类型转换的理解吧。 1、int型与string型的互相转换最佳实践:int型转string型 [cpp] view plain copyvoid int2str(const int &int_temp,string &string_temp) {转载 2017-08-31 16:46:49 · 622 阅读 · 0 评论 -
将二进制深度图转换成OpenCV的Mat格式
日常在使用深度相机(Xtion之类)时,有时没有OpenCV的环境,就会把数据保存成16位的二进制dat文件,但是之后我们的处理一般都是在OpenCV里面的,这时就需要将二进制深度图转换成Mat格式,下面这段例子就实现了这个功能。#include <iostream>#include <string>#include <fstream>#include <opencv2/opencv.hpp>原创 2017-08-29 17:59:41 · 4629 阅读 · 0 评论 -
Qt creator创建cmake构建的程序,无法启动调试
原因: cmake默认产生的是release版本。解决办法:打开CMakeLists.txt文件,在文件的最后添加: set( CMAKE_BUILD_TYPE Debug ),再次构建即可。补充:CMAKE_BUILD_TYPESpecifies the build type on single-configuration generators.This st转载 2017-08-03 16:41:28 · 1532 阅读 · 0 评论 -
Qt如何添加现有或额外的ui文件
在#界面文件#一栏添加现有ui文件,添加你要添加的ui文件重新编译,这时会在编译器会在build文件夹里面生成ui_xxx.h的文件。在A.h里面添加一个命名空间,如下:namespace Ui {class Dialog;//这里的Dialog名在ui_xxx.h里面结尾处的命名空间可以看到}在A.h里添加一个变量:private: Ui原创 2016-06-06 17:57:59 · 16465 阅读 · 9 评论 -
C++中直接class 类名和#include的区别
有一些 class QFile 等这类 看似 是声明的东西..例如下面#ifndef WINDOW_H#define WINDOW_HQT_BEGIN_NAMESPACEclass QTcpServer;class QTcpSocket;class QProgressBar;class QLabel;class QDialogButtonBox;clas转载 2017-05-22 20:17:47 · 1418 阅读 · 0 评论 -
Qt如何在main.cpp里面添加connect函数
SIGNAL和SLOT的对象都不能用A a;的方式来创建,而应该用A *a = new A;的方式来创建。因为在main.cpp里面调用connect,一般都是两个类之间的通讯,而用栈的方式创建会在出了函数范围就销毁,故用堆的方式创建。用QObject::connect的方式。原创 2016-06-06 17:24:32 · 8796 阅读 · 0 评论 -
KMP算法实现代码
KMP算法实现昨天看到一个快速字符串查找的思路---KMP,感觉挺有意思的,就实现来试试,下面是代码:环境: windows7 + Qt Creator3.4.2 + Qt5.5.0 如果想看算法解释过程的请看这里KMP原理main.cpp:#include "mainwindow.h"#include <QApplication>#defin...原创 2016-06-26 11:43:30 · 1478 阅读 · 0 评论 -
Kalman滤波——初阶入门
概要 kalman滤波在机器人控制、数字图像等领域应用非常广泛的一种方法,很多人对其名字不能理解,因为kalman滤波在大多数时候表现出来都是将多个数据进行融合,为什么不叫kalman融合呢?如果你有这个疑问,那就说明你对kalman滤波理解不够,任何的数据融合都是为了将多种途径的数据中的噪声滤波,以达到尽可能接近真实值的目的,从这个角度理解,其融合只是表象,滤除了信号中的噪声才是本质。...原创 2018-05-30 23:39:06 · 11233 阅读 · 9 评论