C/C++
FranticPJ
这个作者很懒,什么都没留下…
展开
-
C++ 11 Lambda表达式
C++11的一大亮点就是引入了Lambda表达式。利用Lambda表达式,可以方便的定义和创建匿名函数。对于C++这门语言来说来说,“Lambda表达式”或“匿名函数”这些概念听起来好像很深奥,但很多高级语言在很早以前就已经提供了Lambda表达式的功能,如C#,Python等。今天,我们就来简单介绍一下C++中Lambda表达式的简单使用。声明Lambda表达式Lambda表达式完整的声明格式如下:[capture list] (params list) mutable exception->转载 2020-10-11 11:37:04 · 257 阅读 · 0 评论 -
C++ STL 之 unordered_set 使用
unordered_set可以把它想象成一个集合,它提供了几个函数让我们可以增删查:unordered_set::insertunordered_set::findunordered_set::erase这个unorder暗示着,这两个头文件中类的底层实现----Hash。 也是因为如此,你才可以在声明这些unordered模版类的时候,传入一个自定义的哈希函数,准确的说是哈希函数子(hash function object)。单向迭代器哈希表的实现复杂了该容器上的双向遍历,似乎没有一种合适的方转载 2020-10-04 23:10:07 · 2339 阅读 · 0 评论 -
C++ Primer 笔记——理解std::move
标准库move函数是使用右值引用的模板的一个很好的例子。标准库是这样定义std::move的:template <typename T>typename remove_reference<T>::type&& move(T&& t){ return static_cast<typename remove_reference...转载 2019-04-22 15:22:35 · 149 阅读 · 0 评论 -
emplace_back() 和 push_back 的区别
在引入右值引用,转移构造函数,转移复制运算符之前,通常使用push_back()向容器中加入一个右值元素(临时对象)的时候,首先会调用构造函数构造这个临时对象,然后需要调用拷贝构造函数将这个临时对象放入容器中。原来的临时变量释放。这样造成的问题是临时变量申请的资源就浪费。引入了右值引用,转移构造函数(请看这里)后,push_back()右值时就会调用构造函数和转移构造函数。在这上面有进一步优化...原创 2019-04-22 15:37:49 · 1248 阅读 · 0 评论 -
C++ 11 左值,右值,左值引用,右值引用,std::move, std::foward
这篇文章要介绍的内容和标题一致,关于C++ 11中的这几个特性网上介绍的文章很多,看了一些之后想把几个比较关键的点总结记录一下,文章比较长。给出了很多代码示例,都是编译运行测试过的,希望能用这些帮助理解C++ 11中这些比较重要的特性。内容请看着...转载 2019-04-22 15:39:47 · 919 阅读 · 0 评论 -
C++11常用特性的使用经验总结
前言:本文转载 https://www.cnblogs.com/feng-sc/p/5710724.html本文为了记录和查找方便。C++11已经出来很久了,网上也早有很多优秀的C++11新特性的总结文章,在编写本博客之前,博主在工作和学习中学到的关于C++11方面的知识,也得益于很多其他网友的总结。本博客文章是在学习的基础上,加上博主在日常工作中的使用C++11的一些总结、经验和感悟,整理出...转载 2019-04-27 22:27:10 · 170 阅读 · 0 评论 -
卡尔曼滤波实现C++(1D和3D)
卡尔曼滤波原理参考:轻松理解卡尔曼滤波卡尔曼滤波的理解以及参数调整C++源码:#ifndef KALMAN_H#define KALMAN_H#include <eigen3/Eigen/Dense>using Eigen::MatrixXd;using Eigen::VectorXd;using namespace std;using std::vector;...原创 2019-07-08 11:03:55 · 2432 阅读 · 0 评论 -
C++ Template(一):模板基础
比较懒大家看原文:https://www.jianshu.com/p/fc3fe1e01b42转载 2019-06-30 19:51:02 · 149 阅读 · 0 评论 -
C++面试基础常见问题
文章目录1、C++中重载、重写(覆盖)和隐藏的区别2、C++ 中的虚函数、纯虚函数区别和联系虚函数和纯虚函数有以下所示方面的区别纯虚函数虚函数(在此指的是非纯虚函数)非虚函数C++ 引用和指针的区别1、C++中重载、重写(覆盖)和隐藏的区别重载:是指同一可访问区内被声明的几个具有不同参数列(参数的类型,个数,顺序不同)的同名函数,根据参数列表确定调用哪个函数,重载不关心函数返回类型。隐藏:是...原创 2019-09-27 14:17:18 · 227 阅读 · 0 评论 -
ROS在rviz中实时显示轨迹(nav_msgs/Path消息的使用)
本文分析nav_msgs/Path结构,实现在rviz中画出圆形轨迹。消息结构说明nav_msgs/Path.msg结构#An array of poses that represents a Path for a robot to followHeader headergeometry_msgs/PoseStamped[] posesgeometry_msgs/PoseStampe...原创 2019-04-09 19:05:58 · 5372 阅读 · 0 评论 -
cartographer数据集激光扫描数据类型转化
1、前言:本人想测试自己算法,想找一个公共的数据集来测试,所以找到cartographer的数据集,但是这个数据集的激光雷达的数类型是sensor_msgs/MultiEchoLaserScan这个类型。我平时用的是sensor_msgs/LaserScan这个类型的激光雷达数据。所以使用数据集的时候我就做了一层转化就可以了。机器人最重要的传感器是雷达,即使没有雷达,我们也希望通过别的传感器来...原创 2019-03-29 11:07:06 · 2568 阅读 · 11 评论 -
volatile关键字详解
C/C++中 volatile关键字详解1、一般说来,volatile用在如下的几个地方:中断服务程序中修改的供其它程序检测的变量需要加volatile;多任务环境下各任务间共享的标志应该加volatile;存储器映射的硬件寄存器通常也要加volatile说明,因为每次对它的读写都可能由不同意义;2、volatile 指针和 const 修饰词类似,const 有常量指针和指针常量...原创 2018-10-15 10:12:14 · 191 阅读 · 0 评论 -
C++读写TXT文件
C++读写TXT文件一、文件的输入输出 fstream提供了三个类,用来实现c++对文件的操作。(文件的创建、读、写)。 ifstream -- 从已有的文件读入 ofstream -- 向文件写内容 fstream - 打开文件供读写 文件打开模式: ios::in 只读 ios::out 只写 ios::app ...原创 2018-10-15 10:13:55 · 1258 阅读 · 0 评论 -
C_C++中各种类型所占字节大小
C/C++中各种类型所占字节大小一般来说一个字节等于8位,所以一般char类型占1个字节,也就是8位了。具体多少编程测试一下就知道了。测试用的C++,windows64位机。 cout << "char占用" << sizeof(char) << "字节"<<endl; cout << "int占用原创 2018-10-15 10:15:19 · 1514 阅读 · 1 评论 -
Ceres Solver安装与入门使用
Ceres Solver安装与入门使用安装教程:http://www.ceres-solver.org/installation.html1、Linux系统下安装步骤安装依赖# CMakesudo apt-get install cmake# google-glog + gflagssudo apt-get install libgoogle-glog-dev# BLAS &...原创 2019-01-29 15:38:17 · 15192 阅读 · 6 评论 -
如何使用Hector SLAM 包
下载安装包sudo apt-get install ros-kinetic-hector-slam进入hector_slam包,在launch目录下添加launch文件test.lanuch<launch> <node pkg="rviz" type="rviz" name="rviz" args="-d $(find hector_slam_la...原创 2019-03-24 22:31:31 · 3287 阅读 · 1 评论 -
迭代最近点ICP推导(C++实现)
1、算法介绍ICP(Iterative Closest Point迭代最近点)算法是一种点集对点集配准方法。用数学语言描述如下,即ICP算法的实质是基于最小二乘法的最优匹配,它重复进行“确定对应关系的点集→计算最优刚体变换”的过程,直到某个表示正确匹配的收敛准则得到满足。ICP算法基本思想: 如果知道正确的点对应,那么两个点集之间的相对变换(旋转、平移)就可以求得封闭解。 首先计算...原创 2019-03-22 10:59:36 · 5052 阅读 · 9 评论 -
C/C++ assert()函数用法总结
1. 简介assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行。原型定义:#include <assert.h>void assert( int expression );assert的作用是先计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来...转载 2019-04-02 08:50:10 · 131 阅读 · 0 评论 -
windows下C++读取串口数据
windows下C++读取串口数据这里提供一个类:SerialPort.h#pragma once #ifndef SERIALPORT_H_ #define SERIALPORT_H_ #include <Windows.h> #include"DataFrame.h"/** 串口通信类** 本类实现了对串口的基本操作* 例如监听发到指...原创 2018-10-15 10:08:17 · 21650 阅读 · 9 评论