03 2017 档案
摘要:1 cmake policy是什么? cmake policy可以理解为cmake的语法标准,也就是说,它规定了cmake在解析CMakeLists.txt文件时的行为。 2 cmake policy的用途是什么? cmake在进化的过程中,需要关心两件事情,一是对以前的版本兼容,这样的话,以前的开
阅读全文
摘要:1 libcurl是什么 libcurl是一个支持多个平台支持多个协议的数据传输客户端库。 2 我们可以用libcurl来做什么 可以用它来写库同服务器端交流。 3 libcurl怎么用 CURL *curl; CURLcode res; curl = curl_easy_init(); if (c
阅读全文
摘要:1 CMAKE_GENERATOR 用来生成工程构建文件的工具的名字,比如visual studio 12,2013,比如xcode,不同的平台使用不同的生成工具。 2 MATCHES if (variable MATCHES regex) if (string MATCHES regex) 如果变
阅读全文
摘要:1 如何对一个使用一种特定的字符编码的字符串进行split 比如"你好、我好、她也好!"这个字符串,它是utf-8编码的,现在我要用c/c++实现一个split函数,这个函数将这个字符串分成三个子串“你好”、“我好”和“她也好!”。 2
阅读全文
摘要:1 normal variable、cache variable、environment variable 1.1 什么是普通的cmake变量 1.2 什么是cmake cache变量 cmake cache entry是cmake-gui使用的变量,它是一种用户可以在cmake的ui中设置的变量。
阅读全文
摘要:1 windows的动态库 在要export的函数声明的前面加上__declspec(dllexport)标识这个函数是从该dll中export出来给其它模块使用的。 declspec是declare specifier的缩写,即声明某种说明符。 2 linux的动态库 使用extern关键字标识这
阅读全文
摘要:1 vs工程输出了dll和lib,分别是什么,有什么用? 当设置工程property的Project Defaults的Configuration Type为dll时,不光会生成该动态链接库的dll文件,还会生成该动态链接库的lib文件。 当设置工程property的Project Defaults
阅读全文
摘要:Go to HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer Add a new string value "Max Cached Icons" with value "2000" 然后,重新启动windows
阅读全文
摘要:1 git clone的本质 git clone的是git仓库本身,并不是某个分支。只是clone某个分支使没有意义的。
阅读全文
摘要:1 什么是uml序列图 uml时序图是对象之间交互的序列。 2 uml序列图的构成 2.1 生命线 用虚线表示,表示该对象的生命周期。 2.2 对象 2.3 消息 2.4 控制焦点 用一个矩形表示,表示两个对象交互的一小段时间。 3 为什么我们需要uml序列图 可以表示出程序的运行时状态。 4 有什
阅读全文
摘要:1 什么是windows注册表 windows注册表本质上是Microsoft windows系统的一个数据库,用来存储系统和应用程序的设置信息。无论是系统的还是应用程序的设置信息都可以放在这里。 整个windows系统的配置都是在这个注册表中维护的。 2 windows注册表的结构 注册表呈现为树
阅读全文
摘要:1 一个工程会有多个CMakeLists.txt,如何组织这些CMakeLists.txt来构建一个工程? 1.1 最外层一个CMakeLists.txt,是总的CMakeList.txt,在这个里面用add_subdirectory来进入各个子目录 1.2 每个模块一个CMakeLists.txt
阅读全文
摘要:1 cmake是什么 cmake是一个管理软件build过程的工具。它并不会直接build处软件可执行文件本身,而是build出可以build出软件本身的全部工程文件,比如makefiles、xcode工程文件、vs的工程文件。然后我们可以通过执行这些工程文件,完成最终的编译。 2 使用cmake的
阅读全文
摘要:1 关于vs的版本 visual studio是一个集成开发环境,而vc++是一个c++的compiler,vc++有一个版本和一个版本号,vs也有一个版本,它们的对应关系如下:
阅读全文
摘要:git push 远程仓库 <本地分支名>:<远程分支名>将本地分支的commit推送到远程仓库指定的分支上。git pull是<远程分支>:<本地分支>如果省略了远程分支名,那么默认是和本地分支同名。如果远程分支不存在那么将会被创建。git push -u <远程主机名> <本地分支名>::<远程
阅读全文
摘要:1 知道commit id的话 git show commit-id 2 想要查看某次commit的某个文件进行了哪些修改 git show commit-id filename
阅读全文
摘要:1 git merge [branch] 将[branch]这个分支merge到当前分支。 2 merge的本质 merge就是把branch上的提交合入当前分支的提交树,这两个分支上的所有提交的历史都是存在的。 3 conflict 如果这两个分支上的两个提交都修改了同一个文件,那么就confli
阅读全文
摘要:总结opencv的各种画图流程
阅读全文
摘要:1 Rect_ (const Point_< _Tp > &pt1, const Point_< _Tp > &pt2),Rect的这种两个点的构造函数的两个点只要是矩形的对角点就可以了。 也就是说,无论是左上和右下对角点,还是左下和右上对角点,都是可以的。在cv::Rect内部,表示时,用的是左上
阅读全文
摘要:1 什么是hog特征 hog特征是histogram of gradient的缩写。我们观察图像时,信息更多来自目标边沿的突变。我们计算一块区域内的所有像素处的梯度信息,即突变的方向和大小,然后对360度进行划分,得到多个bin,统计该区域内的所有像素所在的bin,就得到了一个histogram。这
阅读全文
摘要:1 git基本概念梳理 1.1 git的工作目录、暂存区和HEAD指向的版本库以及branch的概念 一个branch就是整个产品的一套代码,而工作目录中就是存放的本branch最新的代码,HEAD指向的branch是最近一次提交后的整个产品的一套代码。从branch的角度就能够很好的把工作目录和H
阅读全文
摘要:1 find all reference功能需要visual assist的帮助 vs2013自己的查找不行,所以可以安装visual assist X,这样的话,就可以支持快速准确的reference查找了。 2 配置工程的相对路径 对标的是该工程的.vcxproj文件所在的目录,也就是说,该文件
阅读全文
摘要:int x = 5; int& y = x; int* xp = &x; int* yp = &y;xp is equal to yp.也就是说,直接对reference取地址就可以了。
阅读全文
摘要:1 定义一个project Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "render", "..\..\platform\win\render\render.vcxproj", "{E751C751-9376-4B5C-8608-1F29
阅读全文
摘要:1 ipch文件夹 用来加速编译,里面存放的是precompiled headers,即预编译好了的头文件。 头文件也是需要编译的,比如需要处理#ifdef,需要替换宏以及需要include其它头文件。 将一些常用的但是不经常修改的头文件编译好放在一个文件中,后面的编译就直接用这个头文件而不用重新编
阅读全文
摘要:1 大驼峰命名法 类名和函数名由单词构成,每个单词的首字母大写。 2 函数命名 大驼峰命名法。 3 类命名 大驼峰命名,但是为了和函数名区分开,在前面加上一个大写的C。
阅读全文
摘要:1 关于c++的对象 只要是用了class或者struct定义的,都是对象,不管有没有方法。不过,一般情况下,没有方法的对象用struct关键字来定义。 2 不用new关键字定义对象 要看这样的对象在内存中的位置,要看它所处的上下文。 如果是在函数中,那么这个对象的内存就是在该函数的栈上,其生命周期
阅读全文
摘要:Git中从远程的分支获取最新的版本到本地有这样2个命令: 1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge git fetch origin master git log -p master..origin/master git merge origin/master
阅读全文
摘要:git fetch origin branchname:branchname 可以把远程某各分支拉去到本地的branchname下,如果没有branchname,则会在本地新建branchname git checkout --track origin/remoteName -b localName
阅读全文
摘要:1 安装git for window 2 安装tortoiseGit 3 生成public key 3.1 打开git bash 3.2 创建~/.ssh文件夹 mkdir ~/.ssh 3.3 配置全局的name和email git config --global user.name "XXX"
阅读全文
摘要:1 什么是ADAS advanced driver assistance system,即高级驾驶员辅助系统。是基于车上各种传感器的应用,如摄像头、雷达、激光器等。 2 ADAS的构成部分 2.1 around view monitoring,全车监视系统 在车里面由于视线阻挡,很难看到车外环境的全
阅读全文
摘要:1 树的基本概念 1.1 树的高度 根节点到每个叶子节点的最大路径长度为树的高度。 1.2 左子树的高度 根的左儿子到左子树的每个叶子节点的最大路径长度为左子树的高度。 1.3 右子树的高度 根的右儿子到右子树的每个叶子节点的最大路径长度为右子树的高度。 2 平衡树 假设树的总的节点个数是n,当根节
阅读全文
摘要:1 基本数据类型的自然对齐 就是说,基本数据类型的变量不能随便放在内存的任意位置,它们的起始地址必须被它们的大小整除。 double是8个字节,float,int,enum是4字节,bool、char是1个字节. 2 struct的自然对齐 它的起始地址必须满足它的最大成员的对齐要求,比如有doub
阅读全文
摘要:1 迭代器 1.1 迭代器不是指针 1.2 迭代器在概念上类似指针 它可以做加减法,它可以用*取指向的对象,但是它只能够用于操作容器。 1.3 迭代器的使用 迭代器有begin()和end()函数(指向最后一个元素的下一个函数),这提供了遍历的范围,然后加上加减法,就可以遍历了。 1.4 迭代器可以
阅读全文
摘要:1 什么是智能指针 它本质上是一个类,它对其所管理的对象进行包裹,new的时候,new出这个智能指针对象的话,会自动创建其所管理的对象。 最重要的是,它会提供一个get该对象的方法,并且保存一个引用计数用的成员变量每次get的话,该引用计数都会加一。 然后它还会提供一个特殊的析构函数,每次delet
阅读全文
摘要:1 class和struct的区别和联系 在c++中,class和struct只有一点不同,它们是可以完全替代使用的。唯一的不同在于,class中的成员默认是private的,而struct中默认是public的。 2 指针和引用的不同 2.1 引用在编译后,本质上还是指针。 2.2 引用定义时必须
阅读全文
摘要:1 重载发生在同一个类内部。 同一个类内部,具有相同的函数名,但是参数列表不同,那么就是重载。因为c++编译器编译时,将函数名和函数列表一起对函数进行了重命名。 2 覆盖和隐藏发生在子类和父类之间。 2.1 覆盖指的是子类虚函数的实现对父类对应的虚函数进行了覆盖。 2.2 其它情况如子类中和父类同名
阅读全文
摘要:1 什么是动态绑定 有一个基类,两个派生类,基类有一个virtual函数,两个派生类都覆盖了这个虚函数。现在有一个基类的指针或者引用,当该基类指针或者引用指向不同的派生类对象时,调用该虚函数,那么最终调用的是该被指向对象对应的派生类自己实现的虚函数。 2 为何能够在运行时找到派生类自己实现的虚函数呢
阅读全文
摘要:1 GNU standard c++ library debian发行版中使用的c++标准库是GNU standard c++标准库。 2 Boost debian发行版中也是用了boost库,但是不是整个使用,它抠出一些特性出来使用。 文件系统操作的包libboost-filesystem1.55
阅读全文