面试题
文章平均质量分 88
惊鸿一博
毕业于中国科学院大学/中科院自动化研究所;专注于SLAM,三维重建,图像处理,视觉定位等;曾就职于鸿海集团,大陆集团,现在某自动驾驶独角兽企业;热爱分享,热爱生活;欢迎一起交流,学习,进步。
展开
-
C++_智能指针shared_ptr、unique_ptr、weak_ptr、auto_ptr总结
参考资料:《C++ Primer中文版 第五版》介绍我们知道除了静态内存和栈内存外,每个程序还有一个内存池,这部分内存被称为自由空间或者堆。程序用堆来存储动态分配的对象即那些在程序运行时分配的对象,当动态对象不再使用时,我们的代码必须显式的销毁它们。在C++中,动态内存的管理是用一对运算符完成的:new和delete,new:在动态内存中为对象分配一块空间并返回一个指向该对象的指针,delete:指向一个动态独享的指针,销毁对象,并释放与之关联的内存。内存四区模型一个由C/C++转载 2021-05-10 07:46:51 · 879 阅读 · 0 评论 -
C++_ 多态与虚函数介绍
多态性同样的接口访问功能不同的函数,从而实现“一个接口,多种方法”。在C++中,多态性的实现和联编(也称绑定)这一概念有关。C++支持两种多态性:编译时多态性,运行时多态性。编译整体过程1.预处理:包含宏替换,条件编译,include导入文件(针对C/C++) 2.编译:包含词法分析,语法分析,语义分析,中间代码生成与优化,生成汇编文件 3.汇编:将汇编文件编译成2进制的机器码 4.链接:将目标文件与外部符号进行链接,得到一个...原创 2021-05-20 12:17:20 · 337 阅读 · 0 评论 -
C++_虚函数的实现的基本原理
目录1. 概述2. 虚函数表构造过程3. 虚函数调用过程4. 多重继承5. 菱形继承1. 概述简单地说,每一个含有虚函数(无论是其本身的,还是继承而来的)的类都至少有一个与之对应的虚函数表,其中存放着该类所有的虚函数对应的函数指针。例:其中:B的虚函数表中存放着B::foo和B::bar两个函数指针。 D的虚函数表中存放的既有继承自B的虚函数B::foo,又有重写(override)了基类虚函数B::bar的D::bar,还有新增的虚函数D::quz。提示:为了描述方转载 2021-05-22 11:08:24 · 342 阅读 · 0 评论 -
c++_如何将一个const变量转成非const变量_const_cast
目录C++提供了四个转换运算符const_cast(expression)用const_cast来去除const限定传统转换方式实现const_cast运算符为何要去除const限定前面讲了C++继承并扩展C语言的传统类型转换方式,最后留下了一些关于指针和引用上的转换问题,没有做详细地讲述。C++相比于C是一门面向对象的语言,面向对象最大的特点之一就是具有“多态性(Polymorphism)”。要想很好的使用多态性,就免不了要使用指针和引用,也免不了会碰到转换的问题,所以在这一.转载 2021-05-23 08:36:05 · 12405 阅读 · 1 评论 -
SLAM_视觉SLAM面试题及答案汇总
目录1 SIFT和SUFT的区别2 相似变换、仿射变换、射影变换的区别3 Homography、Essential和Fundamental Matrix的区别4 视差与深度的关系5 描述PnP算法6 闭环检测常用方法7 给一个二值图,求最大连通域8 梯度下降法、牛顿法、高斯-牛顿法的区别9 推导一下卡尔曼滤波、描述下粒子滤波10 如何求解Ax=b的问题11 什么是极线约束12 单目视觉SLAM中尺寸漂移是怎么产生的13 解释SLAM中的绑架问题14 描转载 2021-04-10 10:38:57 · 7822 阅读 · 0 评论 -
SLAM_SLAM面试专题
目录1. 什么是闭环检测, 回环检测的意义?常用的方法有哪些?你用的哪种方法?有没有创新?2. 描述Gauss-Netwon和LM3. 熟悉Ceres优化库吗?说一下。4. 滤波方法5. 除了视觉传感,还用过其他传感吗?6. 什么是紧耦合、松耦合?优缺点。7. 你认为室内SLAM与自动驾驶SLAM有什么区别?8. 地图点的构建方法有哪些?9. 当前帧新提取的特征点,如何恢复3D点?10. 如何对匹配好的点做进一步的处理,更好保证匹配效果 ?11. 单目相机原创 2021-04-01 16:43:53 · 881 阅读 · 0 评论 -
SLAM_三维点优化时为什么使用逆深度误差而不是深度误差?
SLAM中为什么使用逆深度(深度的倒数)误差而不是深度误差?参考1:逆深度可以用来降低较远的深度点(视差应该越小)造成的误差,这样做更符合精度的表达。举个例子就明白了:因为自然场景物体深度本身变化很大,比如50m和100m,它们的视差其实很小,可能体现在图像里只有一两个像素,但是如果直接用深度值表达的话差距是 100 -50 = 50,如果用逆深度表达的话是 1/50 - 1/100 = 0.01,相对50是个非常小的数值,符合定义能量最小化函数。参考2:采用逆深度参数表达的BA问题导.原创 2021-04-01 16:18:46 · 3126 阅读 · 0 评论 -
算法_快速排序算法C/C++
目录快速排序1. 算法思想2. 实现原理3. 动态演示4. 完整代码5. 结果展示6. 算法分析快速排序1. 算法思想快速排序的基本思想:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。2. 实现原理2.1、设置两个变量 low、high,排序开始时:low=0,high=size-1。2.2、整个数组找基准正确位置,所有元素比基准值小的摆放在基准前面,所有元素比基转载 2021-01-25 21:34:25 · 148 阅读 · 0 评论 -
随手记_C++常考面试题
1. 说说static关键字的用法static局部变量。在局部变量声明前加static表示这是一个“形似局部变量的静zhi态变量”。看起来dao和用起来像是局部变量,但实际上他的性质跟其他的静态变量是一样的,也就是说在内存中只有一个副本,不会像局部变量那样函数调用完毕就释放。与其他静态变量不同的是他的可见性只保持在声明它的函数体内,但可以设置访问函数提供给外部使用。 static全局变量。这种用法继承自C语言,表示这个全局变量的可见性限制在声明它的源文件内(c或者cpp文件),因此不同的源文件可以使用原创 2020-10-14 10:57:34 · 172 阅读 · 0 评论