自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (1)
  • 收藏
  • 关注

原创 深度学习过程可视化cnn-explainer

深度学习过程可视化cnn-explainer这个cnn解释器,把深度学习网络的每个过程都显示处理了,非常适合初学者去了解每个过程还可以上传自己的图片进行处理想了解ReLU过程直接点击就有过程安装过程先在github上去下载cnn_explainer,然后解压在没有中文路径的文件夹中。github链接:https://github.com/poloclub/cnn-explainer下载一个node,下载链接:https://nodejs.org/en/download/release

2021-11-12 20:15:27 1433 2

原创 vs2019+libtorch1.5环境配置

libtorch1.5 + VS2019环境配置之前配过python的pytorch1.2采用的是cuda10.0版本,使用了此链接下载libtorch:https://download.pytorch.org/libtorch/cu100/libtorch-win-shared-with-deps-latest.zip也可以去官网下载 :https://pytorch.org/get-started/locally/ 需要解决问题需要配置:头文件h库文件libdll文件

2021-09-26 11:32:27 282

原创 野火imx6ull开发板手工移植FFmpeg

移植FFmpeg有两种方法:下载源码,手工编译使用Buildroot,配置选择ffmpeg,直接编译生成映象文件准备开发板野火imx6ullUSB免驱摄像头交叉编译工具为arm-linux-gnueabihfdebian文件系统编译x264x264 是一个免费的软件库和应用程序,用于将视频流编码为 H.264/MPEG-4 AVC压缩格式,链接:http://www.videolan.org/developers/x264.html或者git clone https://

2021-09-14 09:40:01 1372 4

原创 野火imx6ull开发板移植mjpg-streamer实现远程监控

安装MJPG-Streamer借鉴链接:https://blog.csdn.net/mucheni/article/details/109447610准备条件个人配置:Ubuntu18.04, 野火imx6ull开发板野火Imx6ull使用的是Debian,不同于buildroot环境,需要手动移植MJPG 库到开发板上MJPG 库下载地址:http://www.ijg.org/files/,选择版本jpegsrc.v8b.tar.gzmjpg-streamer安装新建文件夹mjpg:mkd

2021-09-12 17:38:23 643

原创 解决常见情况下C++终端输入问题

解决常见情况下C++终端输入问题在ACM进行编程时候,需要自己输入数据,下面介绍输入情况,能满足绝大多数输入情况空格间隔需要输入长度int main(){ int N; cin >> N; vector<int> data(N); for(int i = 0; i < N; ++i) { cin >> data(N); } return 0;}二维数组也是如

2021-09-09 09:54:10 569

原创 VSCode中C++编译环境相关插件

名称: Tabnine Autocomplete AI: JavaScript, Python, TypeScript, PHP, Go,Java, Ruby, C/C++, HTML/CSS, C#, Rust, SQL, Bash, Kotlin, React ID:tabnine.tabnine-vscode 说明: ????‍???????? JavaScript, Python, Java,Typescript & all other languages - AI Code comp

2021-08-15 21:36:33 1281 1

原创 (第十四步) STL: alloc内存配置器解析

对于创建自己的STL库来说,重点就在于alloc配置器,其他大部分还是好理解的alloc 配置器std::alloc在源码中考虑小型区块的碎片化问题,存在两级配置器:第一级配置器用来申请超过内存块容量(128byte)的内存,并管理第二级的作用是完成std::alloc对内存的分配。一级配置器主要在于malloc和free的应用,就不做多的解释,配置器的精髓都在二级配置器中。二级配置器二级空间配置器使用内存池+自由链表的形式避免了小块内存带来的碎片化,提高了分配的效率,提高了利用率。SGI

2021-08-15 19:59:19 631

原创 C++输入字符串的几种方式

C++输入字符串的几种方式输入方式是大家都需要熟悉,如果查找输入的问题建议直接看注意事项,getline第一行读取失败的情况分析。读取输入方式cin<<cin.getline(str, size, dilem) // 属于istream流cin.get()getline(cin, str) // 属于stream流gets() // 谨慎使用getchar()1. cin>>输入一个数字或字符,遇“空格”、“TAB”、“回车”就结束 int a; ch

2021-08-15 16:49:06 5175

原创 (第十三步) STL: stl_map容器实现

map特性:所有元素都会根据元素的键值自动被排序map 的所有元素都是pair,同时拥有实值(value)和键值(key),pair的第一元素被视为键值,第二元素被视为实值。map不允许两个元素拥有相同的键值。总体性质和set区别不大,多了一个实值,KeyOfValue 要从证同identity变成选择select,所以对仿函数functional文件进行了一些功能添加实现功能begin()end()constempty()size()clear()find(val)inse

2021-08-14 23:02:45 241

原创 (第十二步) STL: stl_set容器实现

set特性:set所有元素都会根据元素的键值自动被排序。set元素的键值就是实值,实值就是键值。set不允许两个元素有相同的键值。正常set的迭代器不可以改变set的元素值,但是前面红黑树迭代器设计偷了个懒,导致没能设计好const_iterator,其他的性能没有问题。set设计完全使用红黑树的底层机制,所使用的接口完全由红黑树所提供的,因此set实现非常简单,都是调用红黑树的操作。实现功能begin()end()constempty()size()clear()find(

2021-08-14 23:01:43 197

原创 (第十一步) STL: stl_rb_tree容器实现

RB-tree红黑树的重要性,不言而喻,是一种插入和删除都为O(log(N))O(log(N))O(log(N))的数据结构,具体原理可以看这个:红黑树插入和删除分析之后程序的编写,和注释红黑树重平衡的情况也是对照上文的情况的,这里就不多做介绍,直接开始程序设计设计的重点首先根据侯捷书,所述的迭代器之间的关系图,但是我这里直接放在一起,没有分的很细致,设计迭代器然后红黑树结构设计,引入了一个header结点,来表示根节点的父节点且为红色当红黑树处于初始状态时,只有header节点(为红色)

2021-08-13 00:14:48 398

原创 (第十步) STL: stl_binary_search_tree容器实现

binary search tree二叉搜索树性质挺简单的就不多说, 解决小问题,为后面的红黑树做个小铺垫binary search tree设计empty() 树是否为空erase(val) 删除指定元素insert(val) 添加指定元素size() 树上结点数量depth() 返回树的深度cbegin() 返回树的最小值迭代器cend() 返回树的末尾迭代器find(val) 寻找值find_min() 寻找最小值find_max() 寻找最大值print_inorder(

2021-08-10 17:58:08 186

原创 红黑树的插入和删除详解

红黑树RB-tree找了很多其他人的,红黑树的插入大部分都能理解,在删除部分有些博客很难理解进行,就自己写了一篇详细的,有问题欢迎请指出。作为一种广泛应用的平衡二叉搜索树之一,需要我们有些清晰的了解红黑树的结点增删改查效率非常优良,都为log(N),其应用十分广泛:Linux内核进程调度由红黑树管理进程控制块。Epoll用红黑树管理事件块。C++ STL中的map和set的底层实现。用于理解红黑树的生成演示网站:https://www.cs.usfca.edu/~galles/visual

2021-08-10 00:24:28 1684 1

原创 (第九步) STL: stl_string容器实现

stl_string经过前面其他容器的是学习, string的实现很容易理解,没有什么太大的突出点,平常用到也很多,应该挺熟悉的,也就不多做什么解释,直接copy了代码,进行大致修改,使得能运行。测试程序也不给了,但是这里测试的时候加载头文件,说我重复定义,把stl_string.h头文件,从test.h移动到test.cpp下才可以实现,有知道的希望可以留个言。这里实现string是为了后面的二叉搜索树、平衡二叉树等等实现做准备,也可以直接copy着用也是从这里,序列式的容器差不多告一段落了,之后

2021-08-07 15:03:09 133

原创 (第八步) STL: stl_priority_queue容器实现

priority queuepriority_queue带有权值观念,其内的元素并非依照被推人的次序排列,而是自动依照元素的权值排列(通常权值以实值表示),权值最高者,排在最前面。priority_queue利用一个max-heap完成,map-heap是一个以vector表现的complete binary tree 。 max-heap可以满足priority_queue所需要的“依权值高低自动递增排序”的特性。理解完上一节中的max-heap,很容易就理解priority queue的概念。

2021-08-07 10:56:55 138

原创 (第七步) STL: heap算法实现

该算法内容放在Algorithm.h中heap并不归属于STL容器组件,用于辅助实现priority queue。priority queue允许用户以任何次序将任何元素推入容器内,但取出时一定是从优先权最高(也就是数值最高)的元素开始取。binary max heap正是具有这样的特性,适合作为priority queue的底层机制。选择方法的分析: list:虽然插入、删除可以常数时间,但是找极值需要遍历 红黑树:插入、找极值都是​,但是实现较为复杂 binar

2021-08-07 10:49:49 314

原创 (第一步) STL: stl_vector容器实现

简略版:https://blog.csdn.net/qq_38223012/article/details/119278445可以实现基本功能这是完整版,扩展后学习的stl_vector.h#pragma once#ifndef _STL_VECTOR_H_#define _STL_VECTOR_H_#include "../Includes/TypeTraits.h"#include "../Includes/Algorithm.h"#include "../Inclu

2021-08-06 21:31:28 225

原创 (第六步) STL: stl_queue容器实现

queuequeue同stack类似的设计,本身是一种单向出口的FIFO的数据结构使用双向的数据结构都能实现,就如前面设计的list、dequevector是尾部单向,可以做stack,但是不能做queuelist的 == 、!=存在问题,其他功能完好deque可以实现,这里使用deque实现queuequeue设计 操作 比较和分配队列 empty() 队列为空则返回真 pop() 移除队头元素 push() 在队尾增加元素 s

2021-08-06 21:18:02 186

原创 (第五步) STL: stl_stack容器实现

stackstack的设计非常简单,本身是一种单向出口的FILO的数据结构使用双向的数据结构都能实现,就如前面设计的list、dequevector是尾部单向的,也可以作为实现原理前面的deque需要改程序参数list的 == 、!=存在问题,其他功能玩好vector没有问题,这里使用vector实现stackstack设计 操作 比较和分配堆栈 empty() 堆栈为空则返回真 pop() 移除栈顶元素 push() 在栈顶增加元素

2021-08-06 21:14:41 207

原创 (第四步) STL: stl_deque容器的实现

deque 是连续空间(逻辑上是这样的),实际上 deque 是由一段一段的连续空间构成,一旦需要在 deque 的头部和尾部增加存储空间,便配置定量连续的内存空间,串接在整个 deque 的头部或者尾部。deque 采用映射(map)作为主控,也就是中控器。这里的map是一小块连续空间,其中每个元素都是指针,每个指针都指向一段定量连续空间,也叫作缓冲区,缓冲区才是 deque 的主体。当我们申请对象开辟内存的时候,如果没指定缓冲区大小,默认为512bytes,注意开辟内存存的是指针,缓冲区才是存数据。

2021-08-06 21:04:06 174

原创 (第三步) STL: Function.h解析

在sort中用到了functional中函数,默认排序从小到大, 这是是非常简单的一个类,提供了小于和相等两个函数供调用,可以直接放上代码,直接明了的/** functional是非常简单的一个类,提供了小于和相等两个函数供调用**/​#ifndef _FUNCTIONAL_H_#define _FUNCTIONAL_H_​namespace mySTL{ //********** [less] **************** template&l...

2021-08-02 20:25:16 540

原创 (第二步) STL: stl_list容器的实现

stl_list容器STL标准模板库中实现的是双向环形链表,这里就实现了普通双向链表stl_list.h#ifndef _LIST_H_#define _LIST_H_​#include "../Includes/Allocator.h"#include "../Includes/Iterator.h"#include "../Includes/ReverseIterator.h"#include "../Includes/UninitializedFunctio...

2021-08-02 20:13:16 235

原创 (第一步) STL: stl_vector容器简略版实现

stl_vector容器本文参考了这位大佬的github,直接先使用了它的基本头文件,在此基础上创建实现自己容器,反向理解底层代码 Alloc.h 分配内存,使用二级配置器 TypeTraits.h 类型萃取 Construct.h 容器的构造和析构 Allocator.h alloc.h和construct.h的直接上级,封装函数 Itearator.h 迭代器 Functional.h 实现小于和等于 Utility.h 算法中使用,

2021-07-31 17:42:48 240

原创 opencv3.4.11的在QT5.12、VS2019的安装

官方连接:https://opencv.org/opencv3.4 Windows版本下载opencv-3.4.11-vc14_vc15.exe,点击开始安装到对应路径,然后静待解压结束鼠标右键此电脑,打开属性,打开高级系统设置,选择环境变量,找到系统变量中的path变量,双击它,点击新建,将你解压的opencv文件夹中的Opencv\build\x64\vc15\bin路径添加到当中找到Opencv\build\x64\vc15\bin文件下的三个.dll文件完成配置openc

2021-07-04 10:47:30 283

原创 VScode模板创建

调出cpp.json在左下角点击【设置】→【用户代码块】,在弹出的搜索筐中选中【cpp】语言由于我已经有了cpp.json这里输入python作为示例,注意一点:模板中$0表示生成用户模板后,光标所在位置,其他的都好理解然后新建new.cpp文件,输入cpp,按下enter即可完成cpp模板 "Print to conaole":{ "prefix": "cpp", "body": [ "#include <iostream&g

2021-07-03 18:33:13 423

原创 arm编译添加头文件、库文件操作,例如tslib、freetype、libpng等

查看编译的库中是否存在configure文件,存在可以按一下步骤配置以tslib为例编译过程在tslib文件夹下 ​ 工具链配置export ARCH=armexport CROSS_COMPILE=arm-linux-gnueabihf-export PATH=$PATH:/usr/lib/gcc-cross/arm-linux-gnueabihf/7/../../../../arm-linux-gnueabihf/bin上述路径PATH可以有此命令查看ec...

2021-04-09 13:02:55 1005 1

原创 Ubuntu18.04下VSCode环境编写Linux相关驱动程序时出现未定义标识符问题

Ubuntu18.04下VSCode环境编写Linux相关驱动程序时出现未定义标识符问题编译Linux相关驱动程序时,出现未定义标识符问题但是ctrl+鼠标左键可以找到相关定义这是因为没有加载对应Linux内核中头文件路径,使用ctrl+shift+p搜索JSON配置文件之后会在当前环境下.vscode自动生成c_cpp_properties.json进行相应配置添加Linux内核对应的路径此时未定义标识符问题全部消失这里剩下主要是拼写插件和模块声明许

2021-03-27 15:54:57 1871 1

原创 Ubuntu下学习嵌入式vscode非常实用的插件扩展

Ubuntu下学习嵌入式vscode非常实用的插件扩展名称: ARM说明:ARM语言支持名称: C/C++说明:C/C++语言支持名称: DeviceTree说明:设备树语言支持名称: C/C++ Advanced Lint说明:C / C ++的高级,现代,静态分析扩展,支持许多后端分析器程序。名称: C/C++ Snippets说明:C / C ++的代码片段名称: Tabnine Autocomplete AI: JavaScript, Pytho...

2021-03-19 10:45:37 547

原创 TensorFlow运行facenet代码踩得坑

TensorFlow运行facenet代码因版本问题出现的错误试验可以成功MTCNN先去GitHub下载facenet源码:https://github.com/davidsandberg/facenet1. TensorFlow版本问题一开始安装TensorFlow2.0,在Pycharm查看slign_dataset_mtcnn.py代码就出现以下警示这是由于TensorFlow2.0模块进行更改import tensorflow as tf改为import t

2020-08-07 20:59:35 352

C++的mySTL基础的库文件,可以直接写自己的容器

1. Alloc.h 分配内存,使用二级配置器 2. TypeTraits.h 类型萃取 3. Construct.h 容器的构造和析构 4. Allocator.h alloc.h和construct.h的直接上级,封装函数 5. Itearator.h 迭代器 6. Functional.h 实现小于和等于 7. Utility.h 算法中使用,实现pair 8. ReserveseIterator.h 反向迭代器 9. Algorithm.h 经典算法 10. UninitializedFunctions.h 未定义的初始变量的初始化

2021-08-02

空空如也

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

TA关注的人

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