调用函数类
字符串处理
string str1(“hello word”);//字符串初始化
string str2(str1, 2, 6); //从str1的第2个位置拷贝6个字符串初始化str2
string str(“hello word”, 3); //用"hello word"前三个字符初始化str
str1.append(str2);//将str2拼接到str1的末尾
str2.append(str1, 2, 3);//从str1的第二个位置选取三个长度字符拼接到str2末尾
str2.find(str1, 5);//从第五个位置查找str1在str2中第一次出现的位置
str.find(“come”);//从str中查找"come"第一次出现的位置
str.find(“abc”, 5, 2);//从str的第5个位置开始查找"abc"前2个字符第1次出现的位置
str2.find(str1, 5);//从第五个位置查找str1在str2中第一次出现的位置
str2.erase ( size_t pos = 0, size_t n = npos );//删除容器中从pos位置开始的n个元素。返回值是经过删除操作后的容器
getline(std::cin,string s,char ch)//以字符ch来结束字符串的读入
算法类
定义类
// 枚举类型:表示支持的雷达类型
enum LID_TYPE
{
AVIA = 1,
VELO16,
OUST64
}; //{1, 2, 3}
首项赋值1,后续自动排序
// 结构体自定义数据类型
orgtype类:用于存储激光雷达点的一些其他属性
struct orgtype
{
double range; // 点云在xy平面离雷达中心的距离
double dista; // 当前点与后一个点之间的距离
//假设雷达原点为O 前一个点为M 当前点为A 后一个点为N
double angle[2]; // 这个是角OAM和角OAN的cos值
double intersect; // 这个是角MAN的cos值
E_jump edj[2]; // 前后两点的类型
Feature ftype; // 点类型
// 构造函数
orgtype()
{
range = 0;
edj[Prev] = Nr_nor;
edj[Next] = Nr_nor;
ftype = Nor; //默认为正常点
intersect = 2;
}
};
//定义命名空间
namespace velodyne_ros
{
struct EIGEN_ALIGN16 Point
{
PCL_ADD_POINT4D; // 4D点坐标类型
float intensity; // 强度
float time; // 时间
uint16_t ring; // 点所属的圈数
EIGEN_MAKE_ALIGNED_OPERATOR_NEW // 进行内存对齐
};
} // namespace velodyne_ros
使用时 velodyne_ros::Point
对于延时的使用