自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 c++注意问题

先判断指针是否为空;先判断数组不为空,在取数组元素。

2021-12-08 07:11:54 126

原创 代码注意事项

好的代码可阅读性强,不需要注释也能阅读。少重复性。正交性。

2021-09-16 07:01:53 117

原创 STL常用容器

序列式容器:vector list deque stack queue heap priority_queue slist关联式容器:set map multiset multimap hashtable hash_set hash_map hash_multiset hash_multimap

2021-08-04 09:46:11 163

原创 Dijkstra算法、最佳优先搜索(BFS)算法、A*算法

1.Dijkstra算法主要思想是:利用广度优先搜索拓展遍历节点,刷新并记录每个节点到起始点的最短距离以及最短距离相对应的路径。如此就可以得到一条从起点到已知终点的最短距离及相对应的路径.缺点是需要遍历所有点,计算量大。2.最佳优先搜索(BFS)算法最佳优先搜索(BFS)算法是一种启发式的搜索算法,启发式是指目标点到当前节点的代价,当拓展邻节点的时候是按照代价小的节点拓展。这种算法计算量较小,但有的时候找不到最短路径。3.A*算法A*算法是结合了Dijstra和最佳优先算

2021-07-29 11:31:41 3114

原创 深度优先搜索(DFS)和广度优先搜索(BFS)

1.深度优先搜索主要思想是沿着邻接节点深度往下拓展,当遇到的节点的邻接点都被访问过时,则沿路返回上一个节点,在访问上一个节点的邻接点。vector<bool> Visited; //存储所有顶点是否被访问过,flase为没被访问过auto G = Graph(); //图//DFSvoid DFS(Graph *G, int i){ EdgeNode * p; Visited_List[i] = true; cout << G->VexList[..

2021-07-29 10:53:04 145

原创 C++ 函数知识点

1.形参和实参实参是形参的初始值,实参类型必须与形参类型匹配。函数形参列表可以为空。void fact(int i) { };fact(3.14); // 正确的,因为实参3.14可以隐式转换成int类型。2.参数传递当形参是引用时,形参将绑定到对应实参上,那么实参是引用传递(传引用调用);当实参是值被拷贝给形参,形参和实参是两个互相独立的对象,那么实参是值传递(传值调用)。使用引用形参,可以避免拷贝。当形参是大的类型对象或者容器对象,拷贝的效率低下,而引用可以避免拷贝,提升

2021-01-18 23:39:18 274

转载 C++ explicit关键字

C++ 中的explicit关键字只能用于修饰只有一个参数的类构造函数,或者构造函数有n个参数,但有n-1个参数提供了默认值。它的作用是表明该构造函数是显式的,而非隐式的。跟他对应的另一个关键字是implicit,意思是隐藏的,类构造函数默认情况下就是声明为implicit(隐式的)。首先看下面例子:/* 示例代码1 */class Demo{ public: Demo();                /* 构造函数1 */ Demo(double a);.

2021-01-08 11:56:28 284 1

翻译 QP样条路径优化器

QP样条路径优化器提示:要阅读文档中的方程式,建议您使用带有插件的Chrome或将乳胶方程式复制到在线编辑器中二次编程+样条插值1.目标函数1.1获取路径长度路径在站点横向协调系统中定义。在小号范围从车辆的当前位置到默认的规划路径长度。1.2获取样条线段将路径分成n个段。每个线段轨迹由多项式定义。1.3为每个样条线段定义功能每个段我都有累积距离d一世沿参考线。默认情况下,线段的轨迹定义为次数为5的多项式。l=fi(s)=ai0+ai1 cdots+ai2 cdots2

2020-12-22 15:28:48 501

原创 C++ 智能指针

一、share_ptr智能指针事模板,所以创建智能指针时必须提供指向对象的类。智能指针默认初始化保存着一个空指针。share_ptr<string> p1; // 指向stringshrre_ptr<int> p2; // 指向intshare_ptr 的操作share_ptr<T> p; // 创建智能指针p*p; // 获得p指向的对象p->men; //获得p的成员menp.get(); //返回p中保存的指针,若智能指针释放了对象,

2020-12-21 23:35:53 195

原创 C++ 内存分配与堆栈区别与new/malloc区别

一、内存静态内存:保存局部的static对象、类static数据成员、定义在任何函数之外的变量(全局变量)。static对象在使用之前分配,程序结束时销毁。栈内存:保存定义在函数内的非static对象,栈对象程序运行时才存在。(保存局部变量和函数参数等)。动态内存:堆(或者自由空间)进行动态分配,既程序运行时分配的对象。常量存储区:存放常量字符串,程序结束后销毁。动态内存分配:用new/delete(malloc/free)来分配动态内存,或者使用智能指针share_ptr和unique

2020-12-17 23:43:01 546 1

原创 C++ 存储区说明

栈:就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。堆:就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。自由存储区:就是那些由malloc等分配的内存块,他和堆是十分相似的,不过它是用free来结束自己的生命的。全局存储区(静态存储区):全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,

2020-12-14 23:16:27 123

原创 C++ 类说明

类的基本思想是数据抽象和封装。类的实现则包括类的数据成员、负责接口实现的函数体以及定义类所需的各种私有函数。1.this指针成员函数通过一个名为this的额外的隐式参数来访问调用它的那个对象。2.常量成员函数const放在成员函数列表之后表示this是指向常量的指针,这样使用const的成员函数被称作为常量成员函数。常量对象,以及常量对象的引用或指针只能调用常量成员函数。3.构造函数构造函数是初始化类对象的数据成员,无论何时只要类对象被创建,就会执行构造函数。...

2020-12-09 16:01:49 268

原创 C++ 面向对象设计及多态说明

一、概念面向对象是数据抽象、继承、动态绑定。数据抽象,可以实现类接口与实现分离;继承,派生类可以继承基类;动态绑定,由于存在派生类和基类的继承函数,在实际运行时,会根据传递的实参选择函数的版本,以此实现运行时绑定。1.基类基类中通常应该定义一个虚析构函数。虚函数:派生类可以通过其成员函数覆盖基类的函数。基类中定义了静态成员,则整个继承体系只存在该成员的唯一定义。class base {public: base() = default; virtual ~.

2020-12-08 21:05:02 160

原创 size_t 类型解析

1.size_t 的定义size_t是一种机器相关的无符号类型,它被设计的足够大以便能表示内存中任意对象的大小。在C语言中头文件为stddef.h,在C++语言中头文件为csttdef。size_t 是sizeof的返回类型,在64位中是unsigned long int,在32位中是unsigned int。2.使用size_t类型通常用于循环、数组索引、大小的存储和地址运算。数组的下标通常定义为size_t类型。size_t可以跨平台,并且具有高代码的可移植性、有效性或者可读性。.

2020-09-23 20:42:49 7090

转载 C++ 多线程

https://www.cnblogs.com/douzujun/p/10810506.html

2020-09-15 16:08:29 87

原创 常用Linux命令

1. 常用目录操作:1)cd 进入目录 cd - 进入上一次切换的目录2)pwd 查看当前目录3)mkdir 创建目录mkdir -p aaa/bbb创建多级目录4)rmdir 删除空目录rmdir -p aaa/bbb5)ls删除多级目录查看当前目录文件列表ls -l列表显示文件ls -h l 文件大小带显示单位: K,M,Gll6) df查看磁盘空间使用情况df -h7) du常用命令,相当于 ls -alF磁盘占用单位带显示单位:K, M,G...

2020-08-13 13:01:51 121

转载 Apollo Cyber RT开发者工具

Apollo Cyber RT开发者工具http://ghoulich.xninja.org/2020/01/15/apollo-cyber-rt-developer-tools/#more-1912

2020-08-11 15:32:20 459

转载 ubuntu /var/lib/docker存储太大,迁移。

/var/lib/docker存储太大,导致根分区空间不够,$ sudo du -sh /var/lib/docker161G/var/lib/docker迁移思路:先移动数据,再建立软连接。1.停止docker服务$sudo systemctl stop docker2.建立新的docker存储目录$sudo mkdir -p /data/lib/docker3.使用rsync同步docker目录,最好不用mv,先备份再删除妥当些.sudo rsync -avz/v..

2020-08-08 11:03:19 1284

原创 git常用命令

1.创建仓库在某个目录下面,创建仓库(repository),创建的目录仓库里面的所有文件都可以被git管理起来。如下,先创建一个空目录,然后git init就可以把这个目录变成git管理的仓库。mkdir git_repositorycd git_repositorygit init2.将文件添加到仓库先在上面的git_repository文件里面创建一个readme.txt,然后用git add告诉git,将文件添加到仓库:git add readme.txt在git

2020-08-07 20:34:04 227 1

原创 GitLab权限管理说明

一、权限说明GitLab的成员角色有五种,分别为Guest(访客)、Reporter(报告者)、Developer(开发者)、Master(管理者)、Owner(所有者),具体权限如下:Guest(访客):创建项目、写留言薄。 Reporter(报告者):创建项目、写留言薄、拉项目、下载项目、创建代码片段。 Developer(开发者):创建项目、写留言薄、拉项目、下载项目、创建代码片段、创建合并请求、创建新分支、推送不受保护的分支、移除不受保护的分支、创建标签、编写wiki。 Master.

2020-08-07 17:10:36 5724

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除