自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 括号序列的判断

#include<iostream>#include<vector>#include<string>//#include<_dbdao.h>using namespace std;int main(){ char*a=new char[50]; cin>>a; string b(a); int l=0; int num=0; for(int

2017-10-28 21:41:22 373

原创 c++中的拷贝构造函数和赋值函数

拷贝构造函数:是一种特殊的构造函数,函数的名称必须和类名称一致,它必须的一个参数是本类型的一个引用变量。 CExample(const CExample& C) ;class CExample { private: int a; public: //构造函数 CExample(int b) { a = b; cout<<"creat: "<<

2017-10-28 11:04:47 177

转载 求一个整数中的二进制一的个数

int func(x) { int countx = 0; while(x) { countx ++; x = x&(x-1); } return countx; } 将x转化为2进制,看含有的1的个数。

2017-10-27 21:40:56 242

转载 请定义一个宏,比较两个数的a、b的大小,不能使用大于、小于、if语句

1,#define max(a,b) ((((long)((a)-(b)))&0x80000000)?(b):(a)) 若a>b,则a-b的二进制最高位为0,与上任何数还是0,所以大数为a; 否则,a-b为负数,最高位为1,与上0x80000000(最高位为1其他为0)之后为1,所以此时最大数为b。 2,#define max(a,b) ((((a)-(b))&(1<<31))?(b):(a)

2017-10-27 21:36:33 1249

转载 空类中的默认函数

1、缺省构造函数。 2、缺省拷贝构造函数。 3、 缺省析构函数。 4、缺省赋值运算符。 5、缺省取址运算符。 6、 缺省取址运算符 const。class A { public: A(){}//缺省构造函数 A(const A&){}//拷贝构造函数 ~A(){}//析构函数 A&operator=(const A&){}//赋值运算符

2017-10-27 21:30:40 457

转载 模板类的作用

程序设计中,会遇到这样的问题:程序实体所要完成的功能完全一样,但是它们所操作的数据类型却不一样。对于这些函数或者类,采用一个函数和一个类来进行描述的话,将会大大简化程序设计的工作。 一个程序实体的这种能对多种类型的数据进行操作或描述的特性为类属性,具有类属性的程序实体有类属模板和类属函数。采用模板类得好处: 1)可以用来创建动态增长和减小的数据结构 2)它是类型无关的,

2017-10-27 21:25:06 3867

原创 重载和覆盖的区别

重载:在一个作用域中,函数名相同,参数列表不同。 覆盖: 指的是基类中的虚函数和子类中的同名虚函数之间的的关系。 隐藏:(1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。 (2)如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual关键字。此时,基类的函数被隐藏(注意别与覆盖混淆)。

2017-10-27 21:22:58 192

原创 c++基础2

1,循环有序数组的二分查找 循环有序数组: 指的是,将一个有序数组循环左/右移动若干距离之后变成的数组。如,[1,2,3,4,5]循环右移3位,就成为[4,5,1,2,3]。该数组的特点是,其中包含着一个转折点。转折点左右两侧的子数组都是有序的,并且左侧的子数组整体都比右侧的子数组大。 查找方法: 不要想着直接定位到转折点。 只需要知道转折点在中间点的哪一侧就行。因为不含转折点的一侧一定是

2017-10-27 18:02:11 209

原创 c++相关基础

stl内存在哪:vector map set等标准容器默认都是使用内存分配器模板类allocator管理内存的分配、释放。allocator调用new/delete操作符进行批量的内存分配。所以在堆。 首先我们知道c++中主要的内存存储分配方式有: 栈,堆,全局/静态存储区,常量存储区,自由储存区 栈:就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部

2017-10-27 17:49:20 198

原创 C++中的基础相关知识之内联函数inline,extern,条件编译

5,inline 修饰的是内联函数 inline 返回类型 函数名(){}; 关键字 inline 必须与函数定义体放在一起才能使函数成为内联,仅将 inline 放在函数声明前面不起任何作用。 在编译的时候可以直接镶嵌到目标代码中,虚函数不能是内联函数。6,extern extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中

2017-10-26 10:33:23 427

原创 C++中的基础相关知识之预处理,const,sizeof

2,预处理 宏定义 #define 宏指的是一个简单的替换,如 #define sub(x,y) x-y 和#define sub(x,y) (x-y); a*sub(c,d)针对于上面的宏是不同的结果。 在编译时没有进行类型安全检查。 3,常量 关键字 const a,定义的时候必须要初始化,并且常类型的变量或对象的值是不能被更新的。 b,将const改为外部连接,作用于扩大至全局,编

2017-10-25 10:36:54 218

原创 C++中的基础相关知识之static

1,静态变量static 分配在静态存储区。静态变量或静态函数只有本文件内的代码才能访问它,它的名字在其它文件中不可见。 a,函数内部局部静态变量 • 该变量在全局数据区分配内存; • 静态局部变量在程序执行到该对象的声明处时被首次初始化,即以后的函数调用不再进行初始化; • 静态局部变量一般在声明处初始化,如果没有显式初始化,会被程序自动初始化为0; • 它始终驻留在全局数据区,

2017-10-25 09:59:21 138

原创 C++中virtual相关的知识

virtual 关键字,在c++中的主要应用如下: 1,virtual修饰类中的成员函数,叫做虚函数; a,一般的虚函数: 主要体现是类继承的多态性(运行时动态绑定);如在基类A中定义一个虚函数 virtual void f(),那么在A的继承类B中可以对A中的虚函数进行重定义,得到不同的实现。 另一方面,定义一个基类的指针或者引用对象,然后应用子类的地址或者引用(对象)对它进行初始化,那么

2017-10-24 20:44:30 255

原创 c++中' '和“ ”的区别

"a"和'a'的区别,前者是字符串,后者是字符。实际上,"a"在内存中一般占2个字节(不是说字符串长度,是占用内存。注意说是一般占2字节,有特殊情况),"a\0",以'\0'结尾。而'a'是一个单字符。 当然字符串可以是"abcde"这样的,'abcde'这样就是错误的。单引号里的内容表示是字符,双引号里的内容表示是字符串,每个字符串都有一个'\0'结束符。在C++中sizeof('a')=1,它

2017-10-24 18:52:16 7328

原创 对极约束

主要涉及到本质矩阵E(Essential Matix),以及基础矩阵F(Fundamental Matix): E=t^R; F=K*F*K; 其中K为相机内参矩阵的的逆矩阵;t,R为两幅图之间的相对变换。 E有6个自由度,减去一个,只有5个自由度。所以求解E有五对匹配点的就可以。但是,为了求解的方便性,一般利用8对匹配点求解。

2017-10-20 21:45:42 352

原创 三角测量(triangulation)

主要是通过相机的运动来估计特征点的空间位置。设x1,x2分别为两个特征点的归一化坐标,s1,s2,为两个特征点的深度值,R,t表示两帧之间的变换。那么就有s1*x1=s2*R*x2+t;现在方程左右两边左乘x1^,求x1的外积,那么就有0=s2*x1^*R*x2+x1^*t;可以直接求出s1和s2的值。但是一般情况下R,t不一定精确,所以一般应用最小二乘求解,那么怎么求

2017-10-20 20:03:45 8062

转载 c++中引用和指针的异同

1.指针和引用的定义和性质区别:(1)指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。如:int a=1;int *p=&a;int a=1;int &b=a;上面定义了一个整形变量和一个指针变量p,该指针变量指向a的存储单元,即p的值是a存储单元的地址。而下面2句定义了一个整形变量a和这个整形a的引用

2017-10-19 23:11:15 296

空空如也

空空如也

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

TA关注的人

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