C++
今天学习引用。
1.引用的语法,int &b = a;
2.引用必须初始化,一开始就要指明它是谁的引用,而且引用在初始化后不可以改变,就是不可以变成其他变量的引用,下面都相当于赋值操作。
3.引用做函数参数,引用传递的效果与地址传递效果一样。
4.引用做函数返回值,1.不要返回局部变量的引用,局部变量在函数运行后释放,我们已经没有权力去操控它了。2.函数返回值如果是引用,那么函数可以作为左值。
5.引用的本质是一个指针常量。1.int &b = a 等价于 int * const b =&a 2. b =20等价于 *b=20.
6.常量引用。使用场景通常是引用作为函数的参数。1.int &b = 10;这是不允许的,但是const有一种写法,const int &b = 10;这是允许的,编译器会自动修改为,int temp = 10, const int & b =temp;2.void showValue(const int & a) ,a作为引用传进去,并且不可修改。
SLAM十四讲
今天学习三维空间运动。
1.欧式变换。它是用来描述两个坐标系间的坐标变换的。两个坐标系之间,就差了一个旋转和一个平移。旋转可以用一个旋转矩阵俩表示,平移可以用一个平移向量来表示。
之后通过一些齐次坐标和变换矩阵,可以变成下图所示。
2.实践: Eigen。
要包含的头文件,它是一个春勇头文件搭建起来的库,使用时只需要引用头文件,CMakelist中指定Eigen头文件的目录即可:include_directories("/usr/include/eigen3")
声明一个2*3的矩阵:Matrix<float, 2, 3> martrix_23;
声明一个三维向量:Vector3d v_3d;
初始化为0:Martrix matrix_23 = Matrix3d::Zero();
访问矩阵中的数字:martrix_23(i , j);
矩阵向量相乘:Matrix<double,2,1> result = matrix_23 * v_3d;
运动规划
今天学习了JPS,算了,没看明白,明天再干吧