![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 64
可即
这个作者很懒,什么都没留下…
展开
-
git修改及合并commit提交
比如我们刚提交了一个commit,但之后要追加代码到已经推送到远程仓库的提交中,这时我们可以选择修改commit提交,使新的更改也推送到远程仓库,但只显示一次commit记录。然后保存退出,git会压缩提交历史,如果有冲突,需要修改,修改的时候要注意,保留最新的历史,不然我们的修改就丢弃了。有时我们已经多次commit,需要将多次commit合并,只保留一次提交历史。在开发过程中,保持代码记录清晰会更方便追踪,对代码审核人员也更有便宜。原创 2024-02-23 11:43:59 · 668 阅读 · 1 评论 -
C++函数模板和类模板
C++提供两种模板机制:函数模板和类模板原创 2023-08-18 10:33:15 · 1851 阅读 · 0 评论 -
C++11智能指针std::shared_ptr介绍及使用
C++11智能指针std::shared_ptr介绍及使用原创 2023-02-21 17:24:31 · 2177 阅读 · 0 评论 -
推荐使用emplace_back()替换push_back()
推荐使用emplace_back()替换push_back()原创 2023-01-16 16:50:06 · 404 阅读 · 0 评论 -
单向链表 ListNode定义,创建和打印
单向链表 ListNode定义,创建和打印原创 2022-11-30 17:20:56 · 907 阅读 · 0 评论 -
map和unordered_map的使用对比
map和unordered_map的使用对比原创 2022-11-11 11:16:01 · 292 阅读 · 0 评论 -
sort 排序使用介绍
sort 排序使用介绍原创 2022-11-10 11:31:51 · 3364 阅读 · 0 评论 -
vector二维数组的赋值与遍历
vector二维数组的赋值与遍历原创 2022-11-09 14:38:16 · 5443 阅读 · 0 评论 -
关于四元数归一化
关于eigen四元数归一化的使用注意原创 2022-09-16 10:22:44 · 4140 阅读 · 0 评论 -
C++ std::mutex 用法详解
C++ std::mutex 用法详解转载 2022-09-09 11:29:37 · 2357 阅读 · 0 评论 -
vector容器 常用函数
C++ vector容器,常用函数介绍原创 2022-09-05 16:50:57 · 12172 阅读 · 1 评论 -
Eigen中三维位姿表示方式以及相互转换
Eigen中三维位姿表示方式以及相互转换原创 2022-08-11 11:22:38 · 1874 阅读 · 1 评论 -
获取一段程序运行的时间
获取一段程序运行的时间原创 2022-08-09 14:38:48 · 1809 阅读 · 0 评论 -
eigen 中旋转向量、旋转矩阵、欧拉角、四元数的初始化及相互转换
一、旋转向量1.0 初始化旋转向量:旋转角为alpha,旋转轴为(x,y,z) Eigen::AngleAxisd rotation_vector(alpha,Vector3d(x,y,z)) 1.1 旋转向量转旋转矩阵 Eigen::Matrix3d rotation_matrix;rotation_matrix=rotation_vector.matrix(); Eigen::Matrix3d rotation_matrix;rotation_matrix=rotation_vector.to转载 2022-04-24 10:08:41 · 7825 阅读 · 0 评论 -
std::this_thread::sleep_for 使用
使用说明std::this_thread::sleep_for函数是C11的休眠函数,表示当前线程休眠一段时间,休眠期间不与其他线程竞争CPU,根据线程需求,等待若干时间。由于是一个跨平台的函数,因此在代码中大量应用,避免了在不同平台之间所以通过宏定义编译问题。在windows下,可以简单替代Sleep, 在Linux下,替代usleep调用例子头文件定义:#include <thread>std::this_thread::sleep_for(std::chrono::millis原创 2022-04-08 18:03:44 · 16784 阅读 · 0 评论 -
while (feof(file))逐行读取文件语句使用注意
简单来说,直接使用while (!feof(file))来逐行读取txt是错误的,会在逐行读取文件的末尾比文件内容多一行。至于读取到什么,看你的buffer有没有每次做memset,如果有那么读取到空的;如果没有,读取到上一行的数据。原理上,feof()操作是主动去查看文件流指针file是否到达了EOF。执行这个判断时并没有“进行下一次读取”。因此,即便已经读取完了文件最后一行,因为feof()不会把文件流指针file前移,因此得到的判断仍然是“现在不是EOF”。进而执行下一行的读取(不正确的读取)。其原创 2022-03-22 13:55:24 · 2055 阅读 · 0 评论 -
Eigen 部分功能介绍
vector3dvector3d 默认为列向量Eigen::Vector3d a(1.0, 2.0, 3.0)std::cout << "a = \n" << a << std::endl;std::cout << "a.transepose() = \n" << a.transepose() << std::endl;输出结果为:a = 1.02.03.0a.transepose() = 1.0 2. 0原创 2022-03-09 09:43:28 · 1308 阅读 · 0 评论 -
Ceres Solver介绍
一、Ceres解决了什么问题ceres是一款非线性优化问题的数值求解器。Ceres解决的是非线性优化问题,给定初值,得出最优解。具体求解就是构建一个误差函数,认为误差函数最小的时候解是最优的,即求解:二、如何使用CERES_EXPORT void Solve(const Solver::Options& options, Problem* problem, Solver::Summary* summary);先来看一下ceres::Solve的形参,根据参数来看要怎么构建这个优化原创 2022-03-07 17:56:42 · 3063 阅读 · 2 评论 -
C++序列与关联容器
容器概述#include <iostream>#include <vector>int main(){ std::vector<int> x{1,2,3}; auto b = x.begin(); // auto b = x.rbegin() 反向遍历 auto e = x.end(); //auto e = x.rend() for(auto ptr = b; ptr < e; ++ptr) { std::c原创 2021-10-11 20:00:00 · 135 阅读 · 0 评论 -
C++中int&使用
使用swap函数交换两个变量的值这道题可解决方式很多,但这里主要想补下int&的知识。#include<iostream>using namespace std; void swap(int &a,int &b) //void swap(int a,int b),如果这样写则不能实现交换两个数的目的的。因为传递的方式为值传递(单向传递){ int tmp; tmp = a; a = b;原创 2021-09-24 14:04:38 · 6392 阅读 · 0 评论 -
C++中的.、->、::和:
在学习C++的过程中我们经常会用到.和->,::和:和->,在此整理一下这些常用符号的区别。1、A.B则A为对象或者结构体;2、A->B则A为指针,->是成员提取,A->B是提取A中的成员B,A只能是指向类、结构、联合的指针;3、::是作用域运算符,A::B表示作用域A中的名称B,A可以是名字空间、类;4、:一般用来表示继承;1、->是指针指向其成员的运算符。. 是结构体的成员运算符,是对象专用的。最大的区别是->前面放的是指针,而.前面跟的是原创 2021-09-17 14:07:00 · 6617 阅读 · 0 评论 -
流的定位tellg() / tellp()、seekg() / seekp()
获取流位置– tellg() / tellp() 可以用于获取输入 / 输出流位置 (pos_type 类型 )– 两个方法可能会失败,此时返回 pos_type(-1)**tellp()**返回当前关联的 streambuf 对象的输出位置指示器。若出现失败则为 pos_type(-1) 。示例:#include <iostream>#include <sstream>int main(){ std::ostringstream s; std::c原创 2021-09-10 11:33:59 · 422 阅读 · 0 评论 -
C++的精度输出cout.precision()的使用
cout.precision()其实是输出流cout的一个格式控制函数,也就是在iostream中的一个成员函数。precision()返回当前的浮点数的精度值,而cout.precision(val)其实就是在输出的时候设定输出值以新的浮点数精度值显示,通俗来讲,就是设置输出值的有效位数。例1:#include <iostream>using namespace std;int main(){ double value = 3.1415926; cout.precision(1)原创 2021-09-10 11:02:33 · 3186 阅读 · 0 评论 -
C++强制运算符:static_cast、const_cast
强制转换运算符是一种特殊的运算符,它把一种数据类型转换为另一种数据类型。强制转换运算符是一元运算符,它的优先级与其他一元运算符相同。大多数的 C++ 编译器都支持大部分通用的强制转换运算符:(type) expression 其中,type 是转换后的数据类型。下面列出了 C++ 支持的其他几种强制转换运算符:const_cast (expr): const_cast 运算符用于修改类型的 const / volatile 属性。除了const 或 volatile 属性之外,目标类型必须与源原创 2021-09-07 10:41:31 · 1833 阅读 · 0 评论 -
C++ on the road (2)
vector是 C++ 标准库中定义的一个类模板● 与内建数组相比,更侧重于易用性– 可复制、可在运行期动态改变元素个数● 构造与初始化– 聚合初始化– 其它的初始化方式● 其它方法– 获取元素个数、判断是否为空– 插入、删除元素– vector 的比较...原创 2021-08-19 16:55:39 · 65 阅读 · 0 评论 -
C++ on the road (1)
此篇博文仅仅是为了记录我在C++语言路上的脚步,填坑ing…常量与常量表达式const intptr = &x; 表示 解引用ptr不能被改变,即 不能改变x的值int* const ptr = &x;表示*ptr是int类型,即可以改变x的值,不能改变指针ptr的值...原创 2021-08-05 16:09:04 · 63 阅读 · 0 评论 -
C++函数整理
该篇博文主要是为了记录啃代码过程中遇到的函数,记录稿,逐步完善。1.floor函数功能:把一个小数向下取整 即就是如果数是2.2 ,那向下取整的结果就为2.000000原型:double floor(doube x); 参数解释: x:是需要计算的数返回值: 成功:返回一个double类型的数,此数默认有6位小数 无失败的返回值头文件:#include<math.h>示例#include<iostream>#inc原创 2021-07-28 15:02:41 · 119 阅读 · 0 评论