自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

喜欢吃冰棍de谷利文君的博客

不卑不亢,不慌不忙

  • 博客(111)
  • 资源 (4)
  • 收藏
  • 关注

原创 Warning! PATH is not properly set up, xxx is not available.

Warning! PATH is not properly set up, xxx is not available.

2022-07-02 22:33:30 945 1

原创 Tracealyzer+FreeRTOS(快照模式)

Tracealyzer是一个用于RTOS系统跟踪和可视化分析工具,不需要额外的跟踪硬件。Tracealyzer for FreeRTOS支持两种跟踪模式:- 快照模式(Snapshot Mode)- 流模式(Streaming Mode)快照模式:将跟踪数据存储在RAM中,然后通过IDE工具读取出来保存为文件,在PC端进行分析和显示。流模式:将跟踪数据实时传送到PC端,在v4.2以上的版本支持。本文将演示如何在工程中集成Tracealyzer, 使用快照模式。所需软件:- Tracealyze

2022-05-15 10:46:05 1781

原创 Linux压缩和解压缩

Linux 压缩和解压缩

2022-01-09 15:18:33 552

原创 vimrc基础配置

.vimrc配置记录,仅使用基本配置,不包含任何插件。配置效果图:配置如下:"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Sections:" -> General" -> VIM user interface" -> Colors and Fonts" -> Files and backups" -> Text, tab and indent

2021-09-25 14:41:47 749

原创 单例模式

单例模式1 什么是单例模式?2 实现单例的步骤3 单例对象释放问题4 单例模式C++实现建议阅读本文之前,可以先看以下几篇博客,本文仅是我个人记录:1、单例设计模式2、C++ 单例模式讲解和代码示例3、使用 Valgrind 检测 C++ 内存泄漏1 什么是单例模式?单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望

2020-09-04 17:03:07 149

原创 移植Socket遇到的问题——从Windows到Linux

已经在windows下写好并测试通过了Socket网络程序,现在想将客户端程序移植到Linux运行,实现Linux连接到Windows运行的服务器程序。问题1解决方法:将这些语句直接注释掉,即可。原因:Windows下需要用WSAStartupLinux下不需要注意:对于closesocket(_sock);这一句,需要保留,并修改为close(_sock);。参考:Windows Socket和Linux Socket编程的区别...

2020-07-26 15:00:24 179

原创 CLion 输出中文乱码

CLion输出中文乱码,已经按照网上的教程调整过编码格式,还是有部分编码不对,终于发现了问题,希望其他人可以避坑!系统:Win10编译器:CLion1、首先,按照常规的修改编码方式,如下:全部修改成UTF-8,然后确定退出。再将底边的编码方式改为GBK,弹窗选择第二个convert,即可。2、如果按照上面的修改之后还是存在部分文件的输出乱码,那么可以试试下面的方法:在步骤1的基础上,看看Path窗口是否包含工程中所有的文件,并且编码是不是都是GBK方式。如果缺少文件,就点击+号添加文件

2020-07-23 09:54:55 2557 1

原创 【C++知否】类的静态成员

静态成员可以是private,public,protected的。静态数据成员的类型可以是常量、引用、指针、类类型的。静态成员的类内初始化通常情况下,类的静态成员不应该在类的内部初始化。但是,我们可以为静态成员提供const整数类型的类内初始值。不过要求静态成员函数必须是字面值常量类型constexpr。初始值必须是常量表达式,因为这些成员本身就是常量表达式,所以它们能在所有适合常量表达式的地方。即使一个常量静态数据成员在类内部被初始化了,通常情况下在类的外部也应该定义一下该成员。静态数

2020-07-17 21:34:53 214

原创 Git命令集

1、设置全局账号和邮箱git config --global use.name "账号"git config --global use.name "email"2、仓库git status 查看状态git add 把工作区内容->临时区git diff 比较git log 历史提交记录git log --pretty=oneline 简化记录显示git reset --hard HEAD^ 回退上个版本git reset --hard HEAD^^ 回退上上个版本

2020-07-04 08:06:23 109

转载 CLion编译的exe文件无法运行

在编写Socket网络通信程序时,在CLion中可以运行,但是生成的exe文件无法运行,运行报错提示:无法链接动态库。先说,解决方法:在CLion中,修改CMAKElist文件,添加让连接其静态链接libgcc和libstdc++的指令:set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++")即可。原因:CLion使用cmake方法编译,在windows上exe文件需要libgcc才能运行。参考:CLion编译的exe文件

2020-06-26 10:20:32 5406 1

转载 sizeof用法

声明:1)C中sizeof用法 <<<这篇博客分析的比较详细,我仅仅是记录一些关键点,便于自己查阅。1)作用sizeof操作符以字节形式给出其操作数的存储大小。操作数可以是一个表达式 或 括在括号内的类型名。2)用法用于数据类型sizeof(type),数据类型必须用括号括起来。用于变量sizeof(var_name),可以不用括号。注意,不能用于void。3)注意规则(1)常见的数据类型char、unsigned char、signed char.

2020-06-25 11:05:10 390

原创 回溯法(一)

之前做过回溯法相关的题,但今天碰到了一个字符串的排列,有印象可以使用回溯法,但是好久不写,竟有些生疏了。还是基础不牢,这会子地动山摇,愣是解不出来。因此,整理记录一下,加深印象。回溯法,我的理解就是遍历解空间,有点DFS的味道,走不通就退回去选其他路。是不是像在走迷宫?由于采用回溯法求解时,需要回退到父亲节点,所以需要保存搜索过的节点。通常有两种,1)采用栈来保存;2)采用递归方法。用回溯法通常采用两种策略避免无效搜索,即,剪枝函数1)用约束函数在扩展节点处剪除不满足约束条件的路径;2)用

2020-06-13 17:35:34 421

转载 VMware虚拟机配置文件(.vmx)损坏,提示移除,如何修复?

早起打开虚拟机,突然提示“文件损坏,是否移除?”吓我一跳,里面的文件都没有上传到云端,虽然之前有过备份,但是昨天的数据肯定是没有备份的。昨天还是好好的,怎么一打开就这样了?这种情况,我肯定不是第一个碰到的,google一下,果然有解决方法。损坏情况:.vmx文件损坏,其他文件应该都是完好的。vmware版本:15虚拟机系统是:ubuntu16.0.4所以,损坏的文件是ubuntu16.0.4.vmx修复方法:1)删除.vmx(如ubuntu16.0.4.vmx),然后新建一个同样名字的

2020-06-13 09:49:09 11621 6

原创 makefile如何添加c++11标准?

在使用G++编译单个文件时,如果需要c++11标准的支持,直接在编译命令添加-std=c++11。但是,如果是多个文件联合编译时,使用makefile文件,怎么添加c++11标准?两种方式:1)在makefile文件中的每个g++命令中加上-std=c++11;如下:hw07: test.o functions.o g++ -std=c++11 test.o functions.o -o hw07test.o: test.cpp headerfile.h g++ -std=c++1

2020-06-12 10:14:24 14260

转载 【时间复杂度分析】将N个元素使用push_back插入到vector中, 求push_back操作的复杂度

转自:问题: 将N个元素使用push_back插入到vector中, 求push_back操作的复杂度。参考:C++ std::vector中push_back操作时间复杂度分析分析如下:考虑vector每次内存扩充两倍的情况:如果我们插入N个元素,则会引发lgN次的内存扩充,而每次扩充引起的元素拷贝次数为20,21,22,...,2lgN.2^0, 2^1, 2^2,...,2^{lgN}.20,21,22,...,2lgN.为什么是lgN次的内存扩充?如下表所示:元素个数

2020-06-12 09:55:31 916

原创 QOpenGLShader::compile(Vertex): syntax error: #version must come before any other token

错误提示:QOpenGLShader::compile(Vertex): ERROR: 3:11: ‘’ : syntax error: #version must come before any other tokenERROR: 3:12: ‘location’ : syntax error syntax error原因:#version版本声明没有放在最前面,就算前面是注释也不行。比如:解决方法:将版本声明#version 330 core放在最前面,即可。...

2020-06-11 14:16:29 2732 5

原创 【面试题32-lll】 从上到下打印二叉树 III

题目描述:(来源于力扣 剑指offer32)这道题和前面的两题比较类似,1)层序遍历2)分行从上到下打印二叉树这道题,3)之字形打印二叉树需要考虑3点:层序遍历二叉树分层打印之字形(奇数层和偶数层顺序不同)层序遍历二叉树可以考虑使用队列存储节点的值;分层打印可以考虑计算队列中元素的个数来换行;之字形打印,奇数层正序,偶数层逆序,通过层数的奇偶性来判断。下面使用两种方式来实现:层序遍历+双栈 or 层序遍历+队列+deque。1)层序遍历+双栈如果只是层序遍历二叉树,那么使

2020-06-07 10:45:42 256

原创 结构化数据、半结构化数据、非结构化数据的划分

1、结构化数据简单说就是数据库,也称作为行数据,是由二维表结构来逻辑表达和实现的数据,严格地遵循数据格式与长度规范,主要通过关系型数据库进行存储和管理。2、半结构化数据和普通纯文本相比,具有一定的结构性,但和具有严格理论模型的关系数据库的数据相比,更灵活。适于描述:包含在两个或多个数据库中的数据。半结构化数据可以通过灵活的键值调整,获取相应信息,且数据的格式不固定,如json、XML。3、非结构化数据不适于由二维表来表现,包含所有格式的办公文档、XML、HTML、各类报表、图片和音频、视频等。

2020-05-30 09:58:15 2642

原创 selenium启动报错:selenium.common.exceptions.SessionNotCreatedException: Message: session not created

错误提示:selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 80原因:Chrome版本和ChromeDriver版本不一致,极有可能是Chrome浏览器自动升级了新版本,导致两者版本差异,运行不了。解决方法:1)查看Chrome浏览器的版本我这里是83版本的

2020-05-23 09:06:15 8953 3

原创 【C++知否】函数不能返回数组,但可以返回数组指针

虽然知道函数不能返回数组,之前都是使用引用或者形参传入的数组地址,直接修改,函数返回时就不需要考虑返回数组。这几天看到函数返回值这一章节,感觉也需要掌握返回数组指针这一方法。因为数组不能被拷贝,所以函数不能返回数组。但是可以返回数组的指针或引用。解决方法:使用类型别名,定义数组的指针或者引用。typedef int arrT[10];//arrT是一个类型别名,表示的类型是含有10个整数的数组。using arrT=int[10];//类型别名的等价声明arrT* func(int i);//

2020-05-16 22:18:10 1199

原创 The command could not be located because '/bin' is not included in the PATH environment variable.

错误提示:The command could not be located because ‘/bin’ is not included in the PATH environment variable.看着这个提示应该不难理解,是环境变量出了问题。直接说解决方法:在命令行中输入下面这条语句,即可,PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"...

2020-05-10 18:45:09 6093 1

原创 C++ 类型转换

C++的四种类型转换:1 static_cast用于内置的数据类型,还具有继承关系的指针或引用。【注意】:若是内置数据类型指针,如int*、char*,或者没有继承关系的对象指针,都不能用static_cast。//转换具有继承关系的对象指针//父类指针转换成子类指针(不安全)Animal *ani=nullptr;Cat *cat=static_cast<Cat*&g...

2020-05-02 14:57:57 114

原创 链表

链表需要先定义好节点Node,可以使用class或者结构体的形式。当然定义一个头结点,可以实现后面添加和删除操作的统一性。多注意下使用递归实现链表尾部添加元素。具体实现://链表template <class T>class Node{public: T e; Node *next; Node(T e,Node *next):e(e),next(...

2020-04-28 23:21:50 86

原创 队列

队列的操作和栈比较类似,只不过是队列是先进先出的,同样只需要实现好顶层的接口,底层可以使用数组作为数据存储。实现如下:template <class T>class ArrayQueue : public Queue<T>{private: Array<T> *array;public: ArrayQueue(int capacity...

2020-04-28 22:09:14 101

原创

栈的实现顶层接口是固定的,一致的;如下所示:template <class T>class Stack{public: int getSize(); bool isEmpty(); void push(T e); T pop(); T peek();};但是底层实现,可以是数组,也可以是链表,只需要提供顶层相应的接口就可以了。下面这...

2020-04-27 23:07:25 81

原创 数组

重新整理一下数组的实现!1、数组的定义数组定义需要的成员变量:T *data; //数据int size; //个数int capacity; //容量2、主要操作1)数组的构造函数需要注意数据需要使用new来开辟一定的空间大小,默认是10;2)在进行添加和删除操作时,需要维护size;3)一般操作包含:添加、查询、修改、包含、搜索、删除;4)下面的实现中使用了泛型;5...

2020-04-27 22:38:54 85

原创 Git常用命令

整理一下git常用的一些命令,便于下次查找。1)设置账号和邮箱git config --global user.name “账号”git config --global user.email “email”2)查看状态git status3)比较git diff4)把工作区内容—>临时区git add5)历史提交记录git loggit log --pretty=...

2020-04-27 09:07:33 96

原创 C/C++中【全局变量赋值】引发的错误

今天发现一个奇怪的现象:变量a 、p是全局变量,声明在main函数之外;指针p在定义时没有初始化,而是通过后面的赋值。如图,出现错误了:错误提示:但是将这些变量放置在main函数之中,就没有错误了:注意,上面的问题不仅仅是针对指针的,任何变量在都会出现这种错误。原因:C语言中不允许在函数外部给全局变量赋值,全局变量在函数外只能定义时初始化。解决方法:1)在定义全局变...

2020-04-10 17:16:58 3234

原创 【算法79】 单词搜索

题目描述:(来源于力扣79) 思路:查找的过程如下图所示,依次比较矩阵中的元素和字符串中的元素,如果存在不同的元素,就返回上一个节点,旋转一个方向角,重新匹配。//旋转方向,顺时针int direction[4][2]={{0,-1},{1,0},{0,1},{-1,0}};上面的查找过程类似于一棵树的遍历,具体实现://回溯法// 时间复杂度: O(m*n*m*n)/...

2020-03-31 11:26:16 128

原创 C/C++中单引号与双引号使用

一直使用单引号和双引号,在Python中好像没有很强的使用限定,但是看到C++中两者的使用有些不同。参考:Single quotes vs. double quotes in C or C++In C and in C++ single quotes identify a single character, while double quotes create a string liter...

2020-03-28 15:19:17 3441

原创 【C++知否】 引用和指针的区别

引用和指针的区别:1)指针有自己的一块空间,而引用只是一个别名;2)使用sizeof看一个指针的大小是4,而引用则是被引用对象的大小;3)指针可以被初始化为NULL,而引用必须被初始化且必须是一个已有对象的引用;4)作为参数传递时,指针需要被解引用才可以对对象进行操作,而直接对引用的修改都会改变引用所指向的对象;5)可以有const指针,但是没有const引用;6)指针在使用中可以指向...

2020-03-27 23:23:41 102

原创 【C++知否】 C++中static关键字的作用

static关键字的作用:1)全局静态变量在全局变量前加上关键字static,全局变量就定义成一个全局静态变量。静态存储区,在整个程序运行期间一直存在。初始化:未经初始化的全局静态变量会被自动初始化为0(自动对象的值是任意的,除非他被显式初始化);作用域:全局静态静态变量在声明它的文件之外是不可见的,准确地说是从定义之处开始,到文件结尾。2)局部静态变量在局部变量之前加上关键字sta...

2020-03-27 21:44:41 160

原创 【算法92】 反转链表ll

题目描述:(来源力扣92)反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。说明:1 ≤ m ≤ n ≤ 链表长度。示例:先说一下,这道题自己做的过程,在这道题之前做了类似的反转链表(力扣206),那道题是反转整个链表,比较简单。这里就只贴出代码了:力扣206:反转链表class Solution {public: ListNode* reverseList(Li...

2020-03-20 12:47:44 89

原创 【算法447】 回旋镖的数量

题目描述:(来源于力扣447)给定平面上 n 对不同的点,“回旋镖” 是由点表示的元组 (i, j, k) ,其中 i 和 j 之间的距离和 i 和 k 之间的距离相等(需要考虑元组的顺序)。找到所有回旋镖的数量。你可以假设 n 最大为 500,所有点的坐标在闭区间 [-10000, 10000] 中。示例:题目中的表述有点绕,其实就是两边节点到中间节点的距离相等。这里的n最多为...

2020-03-19 14:29:12 242

原创 【算法1】 两数之和

题目描述:(来源于乐扣1)给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:1 暴力解法这道题和乐扣167题( 两数之和 II - 输入有序数组)类似,区别仅在于这道题的数组不是有序的。暴力解法依然是双层遍历,然后比对计算两者...

2020-03-19 10:50:17 133

原创 【算法209】 长度最小的子数组

题目描述:(来源于力扣209)理解:1)什么叫子数组,是否需要连续?2)如果没有解怎么办?返回0?3)如果有多个解怎么办?返回所有解,解的顺序怎么样?1 暴力解法使用两层遍历,只有在和满足条件时,才会更新长度length。class Solution {public: int minSubArrayLen(int s, vector<int>& nu...

2020-03-18 18:41:05 100

原创 【算法125】 验证回文串

题目描述:(来源于leetcode125)给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。思路:1)空字符串如何看?2)字符的定义?3)大小写问题判断回文字符串,我们可以使用双指针碰撞法分别指向字符串第一个字符和最后一个字符。如果满足回文字符串的定义,就将首指针加一,尾指针减一。我的实现:c...

2020-03-18 14:51:39 122

原创 【算法167】 两数之和 II - 输入有序数组

题目描述:(来源leetcode167)给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:1 暴力解法——双层...

2020-03-18 11:01:00 115

原创 堆排序

关于堆的数据结构的讲解这里不再赘述,可以参考前面的博客:优先队列&堆堆排序的思路比较简单, 将所有的元素依次添加到堆中, 在将所有元素从堆中依次取出来, 即完成了排序。这里采用的是最大堆,那么每次取出的元素的都是序列中最大的元素,只需要将取出的元素依次存放,就可以实现排序。无论是创建堆的过程, 还是从堆中依次取出元素的过程, 时间复杂度均为O(nlogn) 。整个堆排序的整体时间...

2020-03-16 14:54:28 108

原创 快速排序

1 快速排序法通常使用第一个元素作为分界点;1)i处的元素大于v,直接添加在大于v的后面;2)i处的元素小于v,则将其和j后面一个位置的元素进行交换;3)最后,将v和j后面一个位置的元素进行交换。partition操作:int __partition(T arr[], int l, int r) {// 随机在arr[l...r]的范围中, 选择一个数值作为标定点pivot ...

2020-03-15 17:17:38 149

libmysql.dll(MySQL 32位)

该共享库文件是MySQL的32位,使用前注意是否位数相同。

2019-07-24

00 ManageOne ServiceCenter 3.0.8 租户指南 03.pdf

网络架构,网络精英挑战赛。

2019-05-17

无线传输NRF24L01程序

NRF24L01无线通信,经过发送使用stm32f103rbt6,接收方使用stm32f103zet6,成功通车;测试的数据使用采集到的温度数据,同时由从机与上位机通信,绘制温度曲线,上位机使用labview。

2018-11-06

上大初始电路真题

上海大学电路初试真题 15年到17年,回忆版,仅供参考!!!

2018-11-01

空空如也

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

TA关注的人

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