自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 VScode配置launch 和tasks文件

launch 部分{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "(gdb) 启动", "type": "cppdbg",

2021-04-28 17:34:34 1121

原创 A*算法学习 python 和C++ 代码

参考1参考2Python 代码copy 参考1# -*- coding: utf-8 -*-import numpy as npfrom heapq import heappush, heappopdef heuristic_cost_estimate(neighbor, goal): x = neighbor[0] - goal[0] y = neighbor[1] - goal[1] return abs(x) + abs(y)def dist_betw

2021-01-26 16:13:45 306

原创 人工势场实验复现

参考内容复现中不懂地方参考链接matlab 函数语法参考1 mesh 绘制网格图参考链接2 colormap参考链接3 subplot 绘制多个图像参考链接4 quiver 画箭头向量图

2021-01-12 11:12:47 221

原创 Touch 调试记录

1 按照github 安装方式 重新进行安装后 建立omni——ws 工作空间进行测试 结果 : 依旧检测不到 TouchSetup 直接运行 ros 显示初始化错误

2020-08-25 15:45:45 673 2

原创 C++中 next_permutation函数的应用 ACwing 火车进站题目

next_permutation(start,end),和prev_permutation(start,end)。这两个函数作用是一样的 区别就在于前者求的是当前排列的下一个排列,后一个求的是当前排列的上一个排列。至于这里的“前一个”和“后一个” 函数头文件 bool next_permutation(iterator start,iterator end)这里有n列火车将要进站再出站,但是,每列火车只有1节,那就是车头。这n列火车按1到n的顺序从东方左转进站,这个车站是南北方向的,它..

2020-08-19 15:01:19 257

原创 剑指offer46重复数组全排列

题目来源输入一组数字(可能包含重复数字),输出其所有的排列方式。样例输入:[1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]非重复数组代码//// Created by Admin on 2020/8/19.//// 51 数字排列/* * 输入一组数字(可能包含重复数字),输出其所有的排列方式 */#include <iostream>#include <vecto

2020-08-19 10:33:45 238

原创 计算机网络第五章

5.2 传输层和应用层 之间的关系 http=TCP+80 https=TCP+443 DNS= UDP+53 or TCP+53 ftp=TCP+21 STMP=TCP+25 POP3=TCP+110 SQL=TCP+1433 应用层协议和服务之间的关系 : 服务运行后在TCP或UDP 的某个端口侦听客户端的请求 查看自己计算机的服务 netstat -an 测试远程计算机打开端口

2020-07-18 20:19:49 266

原创 C++面试题目整理(三)

1 结构体 sizeof 内存对齐作用1 字节对齐不仅便于CPU的快速访问,使CPU性能达到最佳 ,且节省空间2 pragmatic pack(n) 按照n个字节对齐2 (1.4指针) 1 指针是一个变量,本身独立 无论是 指向还是本身内容都可以改变 . 2 引用本身不具有逻辑独立性质,需要依赖3 野指针 空指针1 创立时指针不会指向NULL ,应该指向NULL 或者合理值如果不指向则会造成野指针2 当指针被 free 或者 delete 时 没有指向 null 也

2020-07-10 18:00:20 136

原创 侯捷C++STL学习记录(三)

红黑树希望一棵树 尽量平衡红黑树 一颗高度平衡 的树begin() 记录 红黑树的最左边的 left 元素map 允许data被改变,只有元素的key 不可以被改变rb_tree 提供两种 insertion操作: insert_unique() 和insert_equal()insert_unique(): key在tree 中独一无二 若key重复安插失败.容器rb_tree各种容器元素内部数据大小仿函数本身没有 数据 不占用内存 但是为了计算方便 还是会计算为1 (编译器

2020-07-08 11:54:58 290 2

原创 侯捷 C++ STL学习记录 (二)

p15 Iterator 需要遵守的原则std :: __iterator_category 分类difference_typevalue_typeiterator 需要五种方法容器 vector 实现1 2倍增长空间vector 容器本身大小是 12 三个指针 start finish end_of_storagesize () 通过函数来调用 end() - start()...

2020-07-08 09:03:47 161

原创 leetcode 112 二叉树路径总和 经典 (DFS 回溯 BFS 栈)

一 DFS 递归思路 :树的题目一般采用递归方法分别判断 root 受否满足条件 递归左子树 ,递归右子树 判断如何考虑呢 ?先看作整体 ,找到满足条件时返回出口,这个时候可以 考虑只有三个节点情况,分别写出判断条件.然后递归左右子树.1 判断root 节点是否为空 空return false2 非空 判断是否满足条件条件为叶子节点(左右节点都为空) 且sum==val return true3 递归判断左右子树是否满足条件class Solution {pu.

2020-07-07 13:32:17 182

原创 侯捷STL体系学习记录 (一)

P2STL 六大部件 :容器分配器算法迭代器适配器仿函数count_if 查找条件下的值容器不一定是连续的 比如链表 容器序列 : 连续式 关联式 (C11 unorder con (hash_table))连续式: Array ( 无法扩充)vector (前端无法改变,会自动扩充)deque(双端队列)List(容器默认是双向链表) (指针在32 位上占位4个字节)forward-list 单项列表 对于需要大查找使用 的数据结构 set

2020-07-04 23:24:05 170

原创 C++面试题目整理持续(二)

1 将“引用”作为函数返回值类型的格式、好处和需要遵守的规则?注意事项:(1)不能返回局部变量的引用。这条可以参照Effective C++[1]的Item 31。主要原因是局部变量会在函数返回后被销毁,因此被返回的引用就成为了"无所指"的引用,程序会进入未知状态。(2)不能返回函数内部new分配的内存的引用。这条可以参照Effective C++[1]的Item 31。虽然不存在局部变量的被动销毁问题,可对于这种情况(返回函数内部new分配内存的引用),又面临其它尴尬局面。例如,被函数返回的引用只是

2020-07-01 20:58:09 98

原创 C++侯捷学习记录(四)

C++ 下point - like1 智能指针template <class T> class shared_ptr{public: T & operator*() const { return *px; } T* operator->() const { return px; }private: T* px; long* pn;};2 迭代器 像一个智能指针对 node 进行*号操作 解参考 *node 代表 链表

2020-07-01 20:57:31 112

原创 C++侯捷学习记录(五)

C++ 下 P13三个主题variadic templates (C++ 11)autoranged-base (C++ 11)reference加上 const 后 函数签名不同 可以共存P17 关于vptr 和 vtbl子类中有父类 的part 成分 .当一个类中有虚函数 对象中大小会多一个指针class A {public: virtual void fun() { }private: int x; int y;};class B{public

2020-06-29 21:44:48 88

原创 leetcode195周赛 T3(利用求余数)

检查数组对是否可以被K整除题目链接题目描述 : 给你一个整数数组 arr 和一个整数 k ,其中数组长度是偶数,值为 n 。现在需要把数组恰好分成 n / 2 对,以使每对数字的和都能够被 k 整除。如果存在这样的分法,请返回 True ;否则,返回 False 。示例:输入:arr = [1,2,3,4,5,10,6,7,8,9], k = 5输出:true解释:划分后的数字对为 (1,9),(2,8),(3,7),(4,6) 以及 (5,10)思路利用同余原理比如 余数 为 1

2020-06-28 19:22:49 126

原创 C++侯捷学习记录(三)

P11 复合 继承class B{}class A{B b }类 A 中 有 B A has a b复合关系的 构造函数 顺序 先内部 在外部delegation (委托) 指针复合 (pimpl)(composition by reference )含有指针 就不同步copy 共享记数 节省内存,共享数据 如何改动 a 改动 不能影响 b若想改动 就复制一份a出来 , 叫做 copy on writeinheritan

2020-06-27 13:17:37 151

原创 C++侯捷 学习记录 (二)

操作符重载与临时对象返回的 一定是 value 不是 reference ,因为local obj 在后就结束了.临时对象下一行就结束了输出<< 操作符重载 要设计为全局的函数/ 特殊操作符智 只能写成全局函数// << 作用在左边 // return by reference 且返回不是local ostream& operator<< (ostream& os, const complex& x){

2020-06-25 23:17:59 155

原创 C++侯捷 学习记录 (一)

P3 构造函数观察的点 : 数据在private有没有 const传递是否时 reference临时变量不能返回引用class complex{public: complex(double r = 0, double i = 0) (1) : re(r), im(i) {} // inline funtion 特性比好 double real() const { return re; } //若函数在类内定义完成 自动成为inline 候选人 double imag(

2020-06-25 13:48:55 208

原创 C++面试题目整理持续(一)

C++ 面试题目整理1. C 和C++ 最大的特点(1) C++是面向对象的 三大特点:封装 继承 多态(2) 引入引用代替指针 (3)const /inline template 替代宏常量2 C++多态 虚函数 虚析构函数 1 多态:向不同对象发送同一个消息,不同的对象会产生不同的行为,发送消息可以是调用函数等操作。函数重载、运算符重载都是多态。 2 静态多态性:函数重载和运算符重载(实质也是函数重载),编译时就知道调用哪个函数;动态多态性:编译时不知道调用哪个函数

2020-06-24 10:05:06 209

原创 C++常用智能指针学习

unique_ptr<> 指针struct Person{ ~Person() { cout << "~Person"<<"\n"; } string str;};unique_ptr<Person> test(){ return unique_ptr<Person>(new Person);}// 链表结点 template <typename T>struct Node{ T data;

2020-06-23 16:07:40 215

原创 leetcode25 K个一组反转链表(经典题目)

leetcode K 个一组反转链表思路: 当作递练习 : 跳出递归细节问题 ,善于把问题转换为已经解决的问题此题目可以借鉴 反转链表/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:

2020-06-02 23:35:04 178

原创 leetcode BFS/DFS更新中

leetcode 102 二叉树层序遍历bfs 模板模板一如果不需要确定当前遍历到了哪一层,BFS模板如下。while queue 不空: cur = queue.pop() for 节点 in cur的所有相邻节点: if 该节点有效且未访问过: queue.push(该节点)模板二如果要确定当前遍历到了哪一层,BFS模板如下。这里增加了level表示当前遍历到二叉树中的哪一层了,也可以理解为在一个图中,现在已经走了多少步了。s

2020-06-02 23:34:33 106

原创 leetcode动态规学习(二)

打家劫舍问题class Solution {public: int rob(vector<int>& nums) { vector<int>dp(nums.size(),0); int M=nums.size(); if(M<=0) return 0; if(M==1) return nums[0]; if(M==2) return max(nums[0],n

2020-06-02 23:34:04 109

原创 leetcode 5最长回文字符串(中心扩展+动态规划)

中心扩展法则class Solution {public: string longestPalindrome(string s) { int m = s.size(); if (m < 2) return s; int maxlen =0 ; int start = 0; int end = 0; //string res = s.substr(0, 1); for (int i = 0; i < m;.

2020-06-02 23:33:29 142

原创 A* 算法初试 matlab 版本/C++ 版本

A* 算法基本概念参考A*算法是一种寻路算法,常常被用在游戏智能ai的自动寻路过程等等,它较之于图论的最短路算法而言,更加适用于节点巨大的情况下,但是该算法是一种启发式搜索算法,并不能保证总是找到最优路径。参考这个人基本概念讲解很清楚 来源算法基本流程 A星算法伪码: a、将开始点记录为当前点P b、将当前点P放入封闭列表 c、搜寻点P所有邻近点,假如某邻近点既没有在开放列表或封闭列表里面,则计算出该邻近点的F值,并设父节点为P,然后将其放入开放列表 d、判断开放列表是否已经空了,

2020-06-02 23:32:49 301

原创 机器人里程计功能实现

甲方需要 无IMU 下的里程计功能实现一开始不懂如何实现 到现在初步实现 现在将过程记录最核心的参考是 这篇博文参考文章基础知识

2020-05-22 15:02:31 551

原创 (挖坑)leetcode 1371 每个元音包含偶数次的最长子字符串(状压)

leetcode 每个元音包含偶数次的最长子字符串状态压缩 int findTheLongestSubstring(string s) { int m = s.size(); // 状态压缩用bit来表示 每一位aeiou 出现奇偶次数 // 00001 =uoiea a 出现一次 // 00011=uoiea e 出现一次 // 包偶数个则必须 是00000 状态 // 当出现[0 i]= 0

2020-05-20 17:33:25 189

原创 leetcode 152乘积最大的子数组(动态规划)

leetcode 152乘积最大的子数组自己根据官方题解写的垃圾动态规划class Solution {public: int maxProduct(vector<int>& nums) { int M=nums.size(); if(M==1) return nums[0]; vector<int>dpmin(M,0); vector<int>dpmax(M,0);

2020-05-18 09:52:31 133

原创 leetcode 周赛189 C++按照空格分割 读取单词

库函数把一行单词 放进数组中vector< string> word;stringstream ss(test);// stringstream ss;ss<< text;string temp;while (ss >> temp){ words.push_back(temp);}

2020-05-17 15:57:48 466

原创 Linux 线程学习记录 四

基本知识点同步概念所谓同步,即同时起步,协调一致。不同的对象,对“同步”的理解方式略有不同。如,设备同步,是指在两个设备之间规定一个共同的时间参考;数据库同步,是指让两个或多个数据库内容保持一致,或者按需要部分保持一致;文件同步,是指让两个或多个文件夹里的文件保持一致。等等而,编程中、通信中所说的同步与生活中大家印象中的同步概念略有差异。“同”字应是指协同、协助、互相配合。主旨在协同步调,按预定的先后次序运行。线程同步同步即协同步调,按预定的先后次序运行。线程同步,指一个线程发出某一功能调用时,

2020-05-12 14:43:21 115

原创 leetcode 50 Pow(x n)

leetcode 50 题解 快速幂学习方案一 暴力直接循n次 ---- 毫无意外TLEclass Solution {public: double myPow(double x, int n) { double res=1.0; if(n>=0) { while(n>0){ res=res*x; n--; co

2020-05-12 13:49:04 168

原创 linux 进程间通信 学习记录 三

进程间通信常见IPC方法管道:使用简单FIFO:非血缘关键间信号:开销小共享内存:非血缘关系间本地套接字:稳定性好…管道特性伪文件(内核缓冲区)两个文件描述符(r/w)数据从写端流入,读端流出原理内核缓冲区环形队列局限性进程自己写不能自己读数据不能反复读单向通信(半双工)只能用于有公共祖先的进程间pipe函数参数fd2返回值成功:0失败:-1errno管道读写行为读管道管道中有数据read返

2020-05-12 13:45:40 111

原创 Linux学习记录 二

基础 ++makefile 文件1、基本规则 三要素:目标 依赖 命令2 、改哪个就编译那个依赖问题 需要那个 就去找那个obj =main .o add .o mul.otarget =app$(target) : (target)gcc(target) gcc(target)gcc(obj) -o $ (target)main .0 : main.cgcc -c main.cadd .o : add.cgcc -c add.c……公式类似宏定义

2020-05-12 08:09:43 142

原创 Linux 学习记录 一

基本知识点命令指令$ 符号 变量后边的值echo 打印信息 到屏幕eg: 在ros 下 打印环境变量env 打印环境变量grep 管道输出env | grep PATHecho $PATHvim 使用1、三种模式末行 模式: wq 保存退出: w 保存: ! 不保存退出: !(添加命令): (数字) 跳转到行2、命令模式3、编辑模式vi 分屏水平分屏 :sp 切换 Ctrl + w w垂直分屏 :vsp 复制当文件打开新的 :vsp

2020-05-11 14:02:43 76

原创 leetcode 动态规划学习一

基本概念动态规划 问题一般就是求最值,比如最长上升子序列。最小编辑距等等 ,其**核心思想是穷举**,要求最值肯定把所有情况进行穷举。直接穷举会超时,动态规划问题存在[重叠问题],如果暴力效率低下的话,可以采用 [备忘录] 和[DP table] 来优化穷举过程。虽然一定存在最优子结构 ,但是**关键点在找出状态转移方程**明确【状态】-> 明确dp 数组含义-> 明确【选择】...

2020-05-07 23:27:01 212

原创 c++ ffmpeg播放器项目实现记录 Qt5.12和VS2019

目录类的设计类接口设计部分类名及功能概述xDemux : 解封装 获取音视频的信息然后进行seek 操作,静态的处理xDwmuxThread : 线程启动 开始读取 与xDemux 是组合关系 不是继承面向对象的五大原则替换原则 : 父类实现的东西子类也可以实现接口隔离: 客户不需要,隔离开来依赖倒置 ;该功能方便正式开始 抄代码了 哈哈哈哈哈1 、创建Qt gui 工...

2020-05-07 11:09:27 738

原创 C ++/Qt实现播放器三天

音视频的基本知识1、MPEG -4 是一套用于音频你、视频得信息压缩编码软件2、 FFmpeg 常用封装格式AVI 压缩标准可任意选择FLV TS 流媒体格式ASFMP4 格式3、 FFmpg 编码格式 H264 (AVC PART10) , WMVXVID (Part2) ,mjpeg音频 aac MP3 ape flac4 Qt 准备...

2020-05-03 10:11:15 503

原创 leetcode 二分练习第二天

leetcode 35参考 weiwei 哥的leetcode题解 总结一下 二分题目类型关键思想 (排除法):把待搜索的目标值留在最后判断,在循环体内不断地把不符合题目要求的子区间排除掉,在退出循环以后,因为只剩下 1 个数没有看到,它要么是目标元素,要么不是目标元素,单独判断即可在判断是选择 > 或者< 号时 一定确保 区间内 一定不存在 target 元素 才能 ...

2020-04-29 14:59:36 117

原创 leetcode 二分练习第一天

leeetcode 410 分割数组题目给定一个非负整数数组和一个整数 m,你需要将这个数组分成 m 个非空的连续子数组。设计一个算法使得这 m 个子数组各自和的最大值最小。注意:数组长度 n 满足以下条件:1 ≤ n ≤ 10001 ≤ m ≤ min(50, n)在输入:nums = [7,2,5,10,8]m = 2输出:18解释:一共有四种方法将num...

2020-04-27 15:12:06 196

空空如也

空空如也

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

TA关注的人

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