- 博客(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 1146
原创 A*算法学习 python 和C++ 代码
参考1 参考2 Python 代码 copy 参考1 # -*- coding: utf-8 -*- import numpy as np from heapq import heappush, heappop def 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 334
原创 人工势场实验复现
参考内容 复现中不懂地方参考链接 matlab 函数语法参考 1 mesh 绘制网格图参考 链接 2 colormap 参考链接 3 subplot 绘制多个图像 参考链接 4 quiver 画箭头向量图
2021-01-12 11:12:47 243
原创 Touch 调试记录
1 按照github 安装方式 重新进行安装后 建立omni——ws 工作空间进行测试 结果 : 依旧检测不到 TouchSetup 直接运行 ros 显示初始化错误
2020-08-25 15:45:45 712 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 268
原创 剑指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 259
原创 计算机网络第五章
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 283
原创 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 154
原创 侯捷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 316 2
原创 侯捷 C++ STL学习记录 (二)
p15 Iterator 需要遵守的原则 std :: __iterator_category 分类 difference_type value_type iterator 需要五种方法 容器 vector 实现 1 2倍增长空间 vector 容器本身大小是 12 三个指针 start finish end_of_storage size () 通过函数来调用 end() - start() ...
2020-07-08 09:03:47 173
原创 leetcode 112 二叉树路径总和 经典 (DFS 回溯 BFS 栈)
一 DFS 递归 思路 : 树的题目一般采用递归方法 分别判断 root 受否满足条件 递归左子树 ,递归右子树 判断 如何考虑呢 ? 先看作整体 ,找到满足条件时返回出口,这个时候可以 考虑只有三个节点情况,分别写出判断条件.然后递归左右子树. 1 判断root 节点是否为空 空return false 2 非空 判断是否满足条件 条件为叶子节点(左右节点都为空) 且sum==val return true 3 递归判断左右子树是否满足条件 class Solution { pu.
2020-07-07 13:32:17 202
原创 侯捷STL体系学习记录 (一)
P2 STL 六大部件 : 容器 分配器 算法 迭代器 适配器 仿函数 count_if 查找条件下的值 容器不一定是连续的 比如链表 容器序列 : 连续式 关联式 (C11 unorder con (hash_table)) 连续式: Array ( 无法扩充) vector (前端无法改变,会自动扩充) deque(双端队列) List(容器默认是双向链表) (指针在32 位上占位4个字节) forward-list 单项列表 对于需要大查找使用 的数据结构 set
2020-07-04 23:24:05 179
原创 C++面试题目整理持续(二)
1 将“引用”作为函数返回值类型的格式、好处和需要遵守的规则? 注意事项: (1)不能返回局部变量的引用。这条可以参照Effective C++[1]的Item 31。主要原因是局部变量会在函数返回后被销毁,因此被返回的引用就成为了"无所指"的引用,程序会进入未知状态。 (2)不能返回函数内部new分配的内存的引用。这条可以参照Effective C++[1]的Item 31。虽然不存在局部变量的被动销毁问题,可对于这种情况(返回函数内部new分配内存的引用),又面临其它尴尬局面。例如,被函数返回的引用只是
2020-07-01 20:58:09 108
原创 C++侯捷学习记录(四)
C++ 下 point - like 1 智能指针 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 119
原创 C++侯捷学习记录(五)
C++ 下 P13 三个主题 variadic templates (C++ 11) auto ranged-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 98
原创 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 138
原创 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 write inheritan
2020-06-27 13:17:37 159
原创 C++侯捷 学习记录 (二)
操作符重载与临时对象 返回的 一定是 value 不是 reference ,因为local obj 在后就结束了. 临时对象下一行就结束了 输出<< 操作符重载 要设计为全局的函数 / 特殊操作符智 只能写成全局函数 // << 作用在左边 // return by reference 且返回不是local ostream& operator<< (ostream& os, const complex& x) {
2020-06-25 23:17:59 173
原创 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 217
原创 C++面试题目整理持续(一)
C++ 面试题目整理 1. C 和C++ 最大的特点 (1) C++是面向对象的 三大特点:封装 继承 多态 (2) 引入引用代替指针 (3)const /inline template 替代宏常量 2 C++多态 虚函数 虚析构函数 1 多态:向不同对象发送同一个消息,不同的对象会产生不同的行为,发送消息可以是调用函数等操作。函数重载、运算符重载都是多态。 2 静态多态性:函数重载和运算符重载(实质也是函数重载),编译时就知道调用哪个函数; 动态多态性:编译时不知道调用哪个函数
2020-06-24 10:05:06 223
原创 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 228
原创 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 186
原创 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 111
原创 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 115
原创 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 150
原创 A* 算法初试 matlab 版本/C++ 版本
A* 算法基本概念 参考 A*算法是一种寻路算法,常常被用在游戏智能ai的自动寻路过程等等,它较之于图论的最短路算法而言,更加适用于节点巨大的情况下,但是该算法是一种启发式搜索算法,并不能保证总是找到最优路径。 参考这个人基本概念讲解很清楚 来源 算法基本流程 A星算法伪码: a、将开始点记录为当前点P b、将当前点P放入封闭列表 c、搜寻点P所有邻近点,假如某邻近点既没有在开放列表或封闭列表里面,则计算出该邻近点的F值,并设父节点为P,然后将其放入开放列表 d、判断开放列表是否已经空了,
2020-06-02 23:32:49 308
原创 机器人里程计功能实现
甲方需要 无IMU 下的里程计功能实现 一开始不懂如何实现 到现在初步实现 现在将过程记录 最核心的参考是 这篇博文 参考文章 基础知识
2020-05-22 15:02:31 573
原创 (挖坑)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 198
原创 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 140
原创 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 485
原创 Linux 线程学习记录 四
基本知识点 同步概念 所谓同步,即同时起步,协调一致。不同的对象,对“同步”的理解方式略有不同。如,设备同步,是指在两个设备之间规定一个共同的时间参考;数据库同步,是指让两个或多个数据库内容保持一致,或者按需要部分保持一致;文件同步,是指让两个或多个文件夹里的文件保持一致。等等 而,编程中、通信中所说的同步与生活中大家印象中的同步概念略有差异。“同”字应是指协同、协助、互相配合。主旨在协同步调,按预定的先后次序运行。 线程同步 同步即协同步调,按预定的先后次序运行。 线程同步,指一个线程发出某一功能调用时,
2020-05-12 14:43:21 128
原创 leetcode 50 Pow(x n)
leetcode 50 题解 快速幂学习 方案一 暴力直接循n次 ---- 毫无意外TLE class 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 184
原创 linux 进程间通信 学习记录 三
进程间通信 常见IPC方法 管道:使用简单 FIFO:非血缘关键间 信号:开销小 共享内存:非血缘关系间 本地套接字:稳定性好 … 管道 特性 伪文件(内核缓冲区) 两个文件描述符(r/w) 数据从写端流入,读端流出 原理 内核缓冲区 环形队列 局限性 进程自己写不能自己读 数据不能反复读 单向通信(半双工) 只能用于有公共祖先的进程间 pipe函数 参数 fd2 返回值 成功:0 失败: -1 errno 管道读写行为 读管道 管道中有数据 read返
2020-05-12 13:45:40 118
原创 Linux学习记录 二
基础 ++ makefile 文件 1、基本规则 三要素:目标 依赖 命令 2 、改哪 个就编译那个 依赖问题 需要那个 就去找那个 obj =main .o add .o mul.o target =app $(target) : (target)gcc(target) gcc(target)gcc(obj) -o $ (target) main .0 : main.c gcc -c main.c add .o : add.c gcc -c add.c … … 公式类似宏定义
2020-05-12 08:09:43 157
原创 Linux 学习记录 一
基本知识点 命令指令 $ 符号 变量后边的值 echo 打印信息 到屏幕 eg: 在ros 下 打印环境变量 env 打印环境变量 grep 管道输出 env | grep PATH echo $PATH vim 使用 1、三种模式 末行 模式 : wq 保存退出 : w 保存 : ! 不保存退出 : !(添加命令) : (数字) 跳转到行 2、命令模式 3、编辑模式 vi 分屏 水平分屏 :sp 切换 Ctrl + w w 垂直分屏 :vsp 复制当文件 打开新的 :vsp
2020-05-11 14:02:43 84
原创 leetcode 动态规划学习一
基本概念 动态规划 问题一般就是求最值,比如最长上升子序列。最小编辑距等等 ,其**核心思想是穷举**,要求最值肯定把所有情况进行穷举。 直接穷举会超时,动态规划问题存在[重叠问题],如果暴力效率低下的话,可以采用 [备忘录] 和[DP table] 来优化穷举过程。 虽然一定存在最优子结构 ,但是**关键点在找出状态转移方程** 明确【状态】-> 明确dp 数组含义-> 明确【选择】...
2020-05-07 23:27:01 219
原创 c++ ffmpeg播放器项目实现记录 Qt5.12和VS2019
目录 类的设计 类接口设计部分 类名及功能概述 xDemux : 解封装 获取音视频的信息然后进行seek 操作,静态的处理 xDwmuxThread : 线程启动 开始读取 与xDemux 是组合关系 不是继承 面向对象的五大原则 替换原则 : 父类实现的东西子类也可以实现 接口隔离: 客户不需要,隔离开来 依赖倒置 ;该功能方便 正式开始 抄代码了 哈哈哈哈哈 1 、创建Qt gui 工...
2020-05-07 11:09:27 763
原创 C ++/Qt实现播放器三天
音视频的基本知识 1、MPEG -4 是一套用于音频你、视频得信息压缩编码软件 2、 FFmpeg 常用封装格式 AVI 压缩标准可任意选择 FLV TS 流媒体格式 ASF MP4 格式 3、 FFmpg 编码格式 H264 (AVC PART10) , WMV XVID (Part2) ,mjpeg 音频 aac MP3 ape flac 4 Qt 准备 ...
2020-05-03 10:11:15 530
原创 leetcode 二分练习第二天
leetcode 35 参考 weiwei 哥的leetcode题解 总结一下 二分题目类型 关键思想 (排除法):把待搜索的目标值留在最后判断,在循环体内不断地把不符合题目要求的子区间排除掉,在退出循环以后,因为只剩下 1 个数没有看到,它要么是目标元素,要么不是目标元素,单独判断即可 在判断是选择 > 或者< 号时 一定确保 区间内 一定不存在 target 元素 才能 ...
2020-04-29 14:59:36 125
原创 leetcode 二分练习第一天
leeetcode 410 分割数组 题目 给定一个非负整数数组和一个整数 m,你需要将这个数组分成 m 个非空的连续子数组。设计一个算法使得这 m 个子数组各自和的最大值最小。 注意: 数组长度 n 满足以下条件: 1 ≤ n ≤ 1000 1 ≤ m ≤ min(50, n) 在输入: nums = [7,2,5,10,8] m = 2 输出: 18 解释: 一共有四种方法将num...
2020-04-27 15:12:06 200
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人