这篇文章总结了一些有趣的小程序片段,这些程序没有设计艰深的数学和算法,而是通过巧妙的构思达成目标。
01
// P 和 pose 都保存的是位姿i。P 里面先是旋转后是位置, pose 里面先是位置后是旋转
// 这个小片段展示了如何由 P 的协方差得到 pose 的协方差
for (int i = 0; i < 6; i++)
{
int k = i < 3 ? i + 3 : i - 3;
pose.covariance[i * 6 + 0] = P(k, 3);
pose.covariance[i * 6 + 1] = P(k, 4);
pose.covariance[i * 6 + 2] = P(k, 5);
pose.covariance[i * 6 + 3] = P(k, 0);
pose.covariance[i * 6 + 4] = P(k, 1);
pose.covariance[i * 6 + 5] = P(k, 2);
}
02
运用先初始化的成员的值来初始化其它成员
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
class Base
{
public:
int b;
Base(int in)
{
b=in;
}
};
class func
{
public:
~func(){};
func():a(1),b(func1())
{
}
int func1()
{
return a+1;
}
int a ;
Base b ;
};
int main(int argc,char** argv)
{
func f;
cout << f.b.b << endl;
return 0;
}