关于OB-GINS在VScode调试配置设置
关于OB-GINS在VScode调试配置设置
系统是Ubuntu18.04 然后其他都是按照牛老师团队整个代码的要求配置的
因为看这个代码比较困难,所以想着边调试边看代码这样会不会好一点,于是就有了这篇blog!!
这个blog记录一下本人首次在vscode调试配置成果叭 呜呜呜呜呜
然后也看了一堆教程,还有blog 终于终于啊!!
分享一下
资料和问题
b站
cmake配置视频
然后是在linux下,进行配置时候,出现的一些bug
比如
在控制台下可以进行编译配置成功,但是在vscode里面就会有红线,而且会提示找不到的情况,这个时候
,参考了一个blog 但是这个blog我目前找不到了 呜呜呜,结论如下了
也就是在配置文件,setting.json里面加入这一句话,即可:
1"C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools"
配置文件
关于在.vsocde里面的配置文件,可以参考上面的视频,然后配置文件无脑参考我的就可:
⛵ launch.json
123456789101112131415161718192 ...
C/C++零碎知识点记录
C/C++知识点零碎记录
记录本人日常比较难理解的知识点 不定时更新
每天读一遍
vector就是特殊的数组,它的每个子单元都是特定的类型——==每个子单元左右是紧密连接的无空隙==
对一族类处理的情况,一般来说都不会往vector里面放对象本身,因为它们往往具有大小上的不同且vector只能保存同一类型;假设要把对象全部放进vector里,此时一般也只能放基类。这就会导致派生类超出基类的内容全部被截断——所以一般会往vector里面放类型一致的,大小一致的指针类型。而该类对象要么是在函数内声明创建的(也就是存储在栈上)要么就是通过new或malloc等创建的在堆上创建的对象。
为了便于批量处理,会把一族变量的指针放在同一个vector里面。因为派生类往往所具有基类不具有的内容,所以往往使用的是基类指针,即在vector里面保存的是基类指针。此时,我们可以通过基类指针调用本族类的通用方法,这件事情没有什么异议。而我们还需要通过基类指针调用同名但在基类和派生类中实现不同的方法,此时我们就需要用虚拟函数,也就是——
基本应用场景:一个类的族(一个基类和其他派生类,所有的类都包含在这 ...
武汉大学OB-Gins 环境配置的记录
武汉大学OB-Gins
环境配置的记录
🌈
本blog记录OB-GINS在虚拟机下的环境配置过程,整个过程主要是大概的步骤,和参考其它博主的详细的分详细步骤。整个过程,敲重点的是注意配置过程的版本号,以及虚拟机的设置(最好虚拟机运行前主机给他分配多一点性能,不然装ceres库的时候
会卡死)
1.虚拟机和Ubuntu
首先你需要一台虚拟机,市面上很多不同的软件可以达到这个要求,我下载的是VMware。然后系统是Ubuntu
18.04 or Ubuntu 20.04 。
新手的话这个配置的过程具体可以参考这个链接。
链接
如果是新手配置,配置完一下需要倒腾一下包括字体,分辨率,然后还可以在内部下载一些浏览器,VSCODE等等。当然别弄太多,毕竟这只是一个用于跑代码的环境。
因为我是之前配的ubuntu16.0版本的,所以需要倒腾一下,把16.0的,升级成18.04的,具体的教程可以参考这个(之前新手已配完的可以不看):
链接
2.GCC和g++下载
配置完之后配置gcc 和g++
注意 配置的版本是大于8.0以上的
3.Cmake下载
然后下载Cmake 最好是3.2以上的 ...
C 指针、多维数组零碎知识点
🌈 关于C指针和数组 相关的东西
今天被chj狠狠整顿了,现在回忆整理一下相关的知识点,既作分享,也加强记忆。本blog需要有基本的指针和数组相关的知识储备
下面是学习的点。配合代码食用更佳~
提要
二维数组 存储形式和一维数组一样
a[2] [3]是左值是因为a[2] [3]等价于 * (a+2* 3*
sizeof(int)+3*sizeof(int))
(int)b【也就是强制转换后】是右值,数组名a等效于右值
关于 intc =((int )&a);
int c= (char )a;
关于 float 类型 用%d读的时候 出现的0.0000问题
1.二维数组
首先二维数组 我们知道是a[m]
[n]这样的形式,其实就是数组的数组,可以理解为类似于矩阵的形式。
🤔那二维数组的存储方式和一维数组一样具体怎么理解?也就是二维数组和一维数组一样,是连续的存储空间。下面用一个代码展示一下。
12345678910111213141516#include<stdio.h>int main(void){ int a[2][3]={{1,2,3},{4, ...
C 存储类型
文字摘自 C Primer 第六版
存储类别
作用域和链接描述了标识符的可见性。
存储期描述了通过这些标识符访问的对象的生存期。
编程示例中使用的数据都储存在内存中。
🌿从硬件方面来看,被储存的每个值都占用一定的物理内存,C
语言把这样的一块内存称为对象(object)。对象可以储存一个或多个值。一个对象可能并未储存实际的值,但是它在储存适当的值时一定具有相应的大小(面向对象编程中的对象指的是类对象,其定义包括数据和允许对数据进行的操作,C不是面向对象编程语言)。
标识符:是一个名称,是可以用于指定特定对象的内容。标识符遵循变量的命名规则。标识符指定硬件内存中的对象方式。
如:int a=3; //a就是一个标识符
变量名不是指定对象的唯一途径。
1int *pt=&entity;
pt是一个标识符,它制定了一个存储地址的对象。但是*pt不是标识符,因为它不是一个名称,然而它趋确实指定了一个对象,这个对象和a指定的对象相同。
一般而言,那些指定对象的表达式称为左值所以a和*pt是表达式也是左值,指定了特定内存位置的值。
1int rank[10];
ranks的声明创建了 ...
C++ 学习 关于const的整理
今天回顾C++ 时候 发现遇到关于const的变量类型(底层const 顶层const
常量指针 指针常量 常量引用…)又有点懵懵的了,然后又仔细复盘了一下
最后整理了一下 也方便记忆
ps 虽然前面也写了相关的 但是我觉得这版好一些哈哈哈哈哈
引入
首先明确一下C/C++中的基本类型
在C/C++中,分为常量,变量,字面量三大类。
🍎常量,简单而言,就是数据类型前面加了const 的 ;
比如 const int a=2;
🍌变量,就是正常的数据类型 比如,int a=0; float a=3.2;
🍊 字面量,就是用的各种字符串,数字,比如上面我提到的
2,0,3.2等。
具体可以自行百度 这不是重点
另,要再讲讲指针变量这个东西。
指针变量也就只是一个数据类型而已,和int
float等一样,int类型里面存储的是整型变量,float是浮点型,而指针变量存储的是变量的地址而已,我们可以通过对指针进行一系列操作,来对这个地址上的变量的值进行更改。具体可以看看这篇blog
顶层const和底层const
而本文的const变量 就是 “常量”的类型,由这个常量可以 ...
毕业前夕
记大水怪离别前一夜
四年前,怀着忐忑,失落,自卑,又无奈,又有稍许期许来到武汉。直到今天,大水怪走之后,才有一种,真的真的要离开的感觉。
今天和大傻在华师拍照,居然还有种,这种在武汉的生活还能持续好久好久。我还想带个饼给大水怪吃,然后跟她一起吃饼。然后他说,回去了,她要走了。然后心咯噔一下,真的,要分开了。后面新的人,新的事物,新的一切,开始新的旅程。
“没有怎么办了,大学结束了。”
真的真的好快,我们要各奔东西了,可能之后再也没有这种缘分了。刚开始的时候不知道珍惜,以为自己拥有很多,但是,后面失去了才知道后悔。真的真的得要珍惜了,好好把握。
我好像还是太过于自以为是了,每次别人对我好,我都当作是实打实的,理所当然的。可是当我要付出的时候,我总是会去推辞别人,然后别人不理我了,然后再去巴巴地讨别人开心。人家回心转意之后,又开始周而复始。就这样一轮一轮的循环。
回顾一下大学四年,我遇见了很多人,但是重心仍然是放在学习为基础上的。每天没日没夜的“假勤奋”,把题库背了,刷老师的好感度,然后绩点就巴巴地上去了。
我还记得大学遇到的第一个朋友是lwd,然后大二实验室选拔开始,就慢慢疏远了。因 ...
C++ 学习 关于const 上
前言
这篇blog 主要是想具体讲讲新学到的const 当然不止是const
而是基于这个const引申出来的指针和引用。还是需要捋一捋的,这还是有点困难的。
我会把每一节的重点都摘出来,放在前面~
1⃣首先讲讲const
2⃣const引用和const指针 ❗ 特别容易混淆
这边blog 常量指针/引用
指针/引用常量 详细讲的不错 可以看看~
const 限定符
🌈敲重点!
🍎因为const对象一旦创建后其值就不能再改变,所以==const对象必须初始化==
🍐只能在const类型的对象上执行不改变其内容的操作
有时我们希望定义这样一种变量,它的值不能被改变。例如,用一个变量来表示缓冲区的大小。使用变量的好处是当我们觉得缓冲区大小不再合适时,很容易对其进行调整。另一方面,也应随时警惕防止程序一不小心改变了这个值。为了满足这一要求,可以用关键字const对变量的类型加以限定:
1const int bufsize = 512;//输入缓冲区大小
这样就把 bufsize定义成了一个常量。任何试图为
bufsize赋值的行为都将引发错误:
1bufSize = 512;//错 ...
毕业设计emo的那一天
毕业了 emo 的一下午
今天上午本科毕设答辩 以老师们 “不知道在讲什么,没有听懂” 结束了
可以说打击还是比较大的 以及我要不要继续去准备后面的内容
还是要记录一下
我一直觉得我需要被别人认可,也一直想要获得别人认可的。
毕业设计做了一个导航相关的东西,和电子信息完全没有任何关系。以及因为那该死的虚荣心,去了985高校做完全不知道的领域,不了解的领域。最后纠结了好久好久,没有发朋友圈,只发了qq空间。以至于很多人不知道我的去向如何,也不想让别人知道我去了个不好的专业。家里母亲也一直在给我宣传我的事迹,只不过不知道我在学校是有多么菜。
我一直挺想做个优秀的人,然后得到别人的认可。但是我发现好像真的很难。这些年,我不清楚我的成绩绩点是怎么来的,好像什么都没有,我又是怀着侥幸的心理,保研上岸的。我好像,真的占了很多侥幸。
最后,来到曾经以为我很优秀的班主任那里,做着毕设。为了这个毕设,跟他交流了好几次,但是不管是PPT还是论文,我都是尽力能够完成的最好,但是事实确是
我好像还是不太能够去得到他们说的可以,好。也许是我太过于愚笨,或者脑子不知道怎么转。最终在毕设答辩的时候,我还是不知道要怎 ...
C++ 指针上
🙋 继续C++ Primer 第五版的学习
可以先看看这两篇 或许可以进一步加深一下对指针的理解
指针和数组
指针简介
🌈 上一次讲了 C++中的引用,总结一下指针和引用的主要区别。
1⃣
指针是一个变量,其存储的是另一个变量的地址。而引用是一个别名,它和被它引用的变量共享同一内存地址。
2⃣指针可以被赋予空值(即NULL),而引用必须在定义时初始化,并且不能被赋予空值。
3⃣对指针的操作不会影响其指向的变量,除非通过指针进行赋值或解引。而对引用的操作会影响其引用的变量。
🌞下面就开始指针的学习叭~
指针
指针(pointer)是“指向(point
to)”另外一种类型的复合类型。与引用类似,指针也实现了对其他对象的间接访问。然而指针与引用相比又有很多不同点。
其一,指针本身就是一个对象,允许对指针赋值和拷贝,而且在指针的生命周期内它可以先后指向几个不同的对象。
其二,指针无须在定义时赋初值。和其他内置类型一样,在块作用域内定义的指针如果没有被初始化,也将拥有一个不确定的值。
定义指针类型的方法将声明符写成*
d的形式,其中d是变量名。如果在一条语句中定义了几个指针变量,每个变量 ...