自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 算法题——对DP数组的认识

1.01背包中一维dp数组,先遍历物品再遍历背包是因为,且背包是倒序的原因是,要用到上一次的dp数组值,如果从小到大就会修改dp数组的值。2.完全背包,本身只需要用到左边的值,01是用到左边和上边的值,所以要从左边开始遍历,而且顺序都可以调,因为只要左边有值就行。将上面的二维dp压缩以后,要保持数组的值,才能更新。

2023-08-24 16:36:54 121 1

原创 Protobuf

一. 介绍MQTT是一种轻量级的通信协议,用于在物联网设备和服务器之间传输消息。它具有低带宽、低功耗和开销小的特点,适用于资源有限的设备。protobuf是一种数据序列化的格式,是Google开发的一种高效的结构化数据存储格式。它可以将数据转化成二进制格式,以便在网络中传输。protobuf可以提供多种语言的支持,并能快速地解析和编码数据。在实际应用中,MQTT和protobuf可以结合使用。

2023-08-18 10:34:44 556 1

原创 STL相关内容

First和last是本buffer的头和尾,node指向中控器,如果走到了边界就要跳到下一个缓冲区,cur是当前元素的指针,中控器是一个vector,还维护了一个start和finish用作begin和end的返回。先去用iterator_trait进行判断类型,泛化成不同的iterator,再去用type_trait进行特化,判断的是trival还是non-trival,进而决定要不要具体处理构造。Lower_bound是最低点,包括传入的初始值,upper_bound是最高点,比当前的初值高一点。

2023-08-18 10:23:56 76 1

原创 自定义的哈希map

构建自定义的哈希表:除了键值之外,要设置两个函数,一个是计算键值的hash函数,另一个是比较键值是否相等的函数,这里对应的分别是。

2023-08-17 17:26:22 179 1

原创 多线程相关

在C++中,条件变量是一种线程间通信的工具,用于协调多个线程的执行顺序。函数进行等待,该函数会检查条件是否为真,若为假则线程被阻塞直到接收到条件变量的通知并重新检查条件,若为真则继续执行。在上述代码中,首先创建了一个条件变量对象cv和一个互斥量mtx,互斥量用于保护共享的条件变量。对象锁定互斥量后,我们可以对其进行一些需要互斥访问的操作。,可以实现对互斥量的锁定和解锁,同时还可以在锁定期间对互斥量进行重新上锁和解锁的操作。是C++多线程编程中的互斥量封装类,用于提供更灵活的互斥锁机制。对互斥量进行了操作。

2023-08-17 10:38:06 58 1

原创 C++相关

引用的实现依赖于编译器,在C++的物理层面上,引用就是目标变量本身,即指向目标变量的指针常量。然后在编译的时候,无论何时我们使用引用,编译器都会替换为对它所引用的目标变量的直接访问。这样做的好处是,以后在代码中当你需要定义一个返回类型为void且无输入参数的函数对象时,你可以直接使用Task,而不需要再写一次较长的。它的一个优点是可以存储任何可以调用的目标,如函数指针,函数对象或者 lambda 表达式。这行代码的含义是定义了一个名为Task的类型,这个类型是一个函数对象,该函数对象没有输入参数并且返回。

2023-08-07 10:39:10 32

原创 C++相关知识

构造函数和析构函数是否能够是虚函数?构造不可以,析构可以。功能上:构造函数就是要初始化对象实例,虚函数是根据实际情况进行确定,不需要动态确定。内存分配:实例化之前,内存空间不存在,找不到虚函数表,虚函数指针vptr是对象实例化之后才能够被设置。构造函数和析构函数是否能够调用虚函数?可以但不提倡,不会呈现多态性。不会进行动态联编。构造中的虚函数只是调用自己的,析构中的虚函数没意义,子类对象先析构,基类后析构,怎么动态联编。成员初始化列表在分配空间的时候赋值。合成默认构造?类成员对象有构造,

2023-08-02 10:32:28 33 1

原创 组件协作类型的设计模式

扩充的时候能够不修改源代码,创建新的类去计算,剩下的不变。比如税的计算方法,增加不同的国家对于会扩充税费的计算方法,但是只需要继承之前的策略实现新的策略就能够实现扩展。策略是可变的,但是基类的strategy和context是不变的,能够实现扩展且保持源代码稳定。晚绑定:早写的代码调用晚写的代码,延迟到子类,支持子类的变化。随意的添加观察者的数量,目标发送通知时无需指定观察者,通过通知机制自动执行。有一个稳定的点,寻找出合适的隔离点。红色是稳定的部分,蓝色是变化的部分。早绑定:晚写的代码调用早写的代码。

2023-08-01 17:32:38 72 1

原创 ADB调试

1.将外在的固件传入机器人。2.将机器人的文件拉出来。

2023-07-28 19:40:15 31 1

原创 CoreDump处理

查看自己的coredump文件位置。再将其和自己想放在的文件关联。文件夹,就能保存到这里。

2023-07-27 10:04:49 36 1

原创 C++17中的constexpr static

因为头文件在每个包含它的.cpp文件中都会被编译一次,如果头文件中有变量或函数的定义,那么就会在每个.cpp文件中都生成该变量或函数的定义,导致链接时出现多重定义错误。但如果A和B定义在不同的文件中,那么可能出现A在B之后初始化的情况,而B在初始化时又会试图使用A,那么就会引发运行时错误。静态变量:函数内部和函数外部,本身静态变量就是为了隐藏全局变量,并且函数内部定义的静态变量,作用域在所在函数,第一次调用时初始化,结束时销毁,没定义时默认为0,函数外部的类似于全局变量,但是对于其他文件不可见。

2023-07-25 16:44:46 481

原创 C++完美转发

使用万能转发的原理,给了两种转发的输入参数,一个左值一个右值,这样就能重载。万能引用只存在于模板中,长得和右值引用一样,但是不确定具体类型。函数的时候会出现调用了左值版本,因为这里生成了一个对象。右值经过转发要保持自己的属性,保证是可以被。函数只能接收右值,所以当右值进去以后,调用。,所以还不能完美转发。

2023-07-25 10:41:40 49

原创 ROS相关

一般情况,你会在你的节点中设置一些订阅者(Subscribers),当有新的消息发布到相应的话题(Topics)上时,订阅者会触发回调函数进行处理。后,ROS主循环会持续运行,每当有新的消息到达,ROS就会调用相应的回调函数进行处理,并在运行结束前一直阻塞。这个函数只会处理当前已收到的所有消息,并立即返回,让你的程序可以处理其他任务。可能返回false的任一情况,此时主循环结束,ROS节点开始进行关闭和清理过程。具体来说,以下任一情况发生,就能知道话题之间的消息类型,这里就是自定义的一些消息文件。

2023-07-21 16:02:40 39 1

原创 多线程概要

atomic:轻量的mutex,给变量本身加的,是线程安全的,但是操作不是原子的,所以使用的时候要使用CAS,compare and swap.主线程响应关注的操作,比如UI相关的类,其他的操作如下载图片就交给其他线程,下载完成后回到主线程。事件循环:有一个EnevtLoop,不断循环,从task队列中取任务逐个执行,执行完成后继续循环。多线程通信,优先PostTalk,Mutex,Channel,Atomic。主线程模式的优势:不需要上锁,调用线程给一个数据过去,让其他线程运行。这里用多个事件循环。

2023-07-21 15:46:29 43 1

原创 Git用法

Git用法

2023-07-21 10:13:27 54 1

原创 windows与ubuntu通过FileZilla传输数据

程序如下一 . 在Ubuntu下1.通过命令// 查看防火墙开启状况sudo ufw status 查看防火墙的状态,active为开启状态,inactive为关闭状态。2.Ubuntu上安装ssh-server// 安装opensshsudo apt install openssh-server3.查看虚拟机的ip地址// 查看网络地址等信息ifconfig二. 在Windows下创建新的站点,然后将虚拟机中的主机地址填入主机选项,将协议改为SFTP,并且输入用户名及密码

2021-11-26 10:18:59 950

原创 基于KNN的手写字符识别

整理了一下自己之前做过的手写字符识别的资料,分享出来供大家学习交流,后续可能还会分享一些其他方法进行手写字符识别的资料,敬请期待~一、任务和设计思路二、KNN算法实现1、KNN算法简介2、简单的KNN代码3、使用sklearn的KNN分类器4、Kd_tree介绍(1)Kd_tree的构造(2)Kd_tree的查询一、任务和设计思路目的是要对手写字符的图片进行识别, 使用的是Chars74K 数...

2020-04-05 20:33:31 1266

原创 Ubuntu和Windows系统下安装TensorFlow的GPU版本(使用Anaconda,IDE为PyCharm)

TensorFlow是一个当前较为流行的深度学习框架,许多开源代码都是通过TensorFlow的代码实现的,本次通过分享笔者在Windows和Linux两种操作系统上安装TensorFlow的实践经历,希望对读者的安装有所帮助一、PyCharm的安装我们可以通过PyCharm中的项目编译器中自带的功能来管理我们的package。下图是我的PyCharm界面。点击右上角的+号即可添加packa...

2019-05-04 11:25:54 349

原创 Ubuntu系统下CUDA及cuDNN安装方法

Ubuntu系统下CUDA及cuDNN安装方法在开始安装CUDA前,需要对有关依赖软件进行配置,笔者需要安装的是CUDA8.0,使用的N卡驱动为390.116,gcc和g++版本为4.8。为了更好地解释安装过程,我们可以通过下面的流程图来进行安装。Created with Raphaël 2.2.0开始安装显卡驱动检查更改gcc和g++版本及内部连接gcc和g++版本匹配?结束yesno1...

2019-04-02 16:33:29 1232

空空如也

空空如也

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

TA关注的人

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