自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(237)
  • 资源 (6)
  • 论坛 (4)
  • 问答 (1)
  • 收藏
  • 关注

原创 Ubuntu配置DNS服务器,通过域名访问本地服务器

系统环境Ubuntu 16.04.6 LTSIP : 192.168.0.102安装配置DNS:ubuntu下使用的是bind9sudo apt install bind9修改配置文件:/etc/bind/named.conf.local 添加正逆解析文件的配置,修改后如下//// Do any local configuration here//// Consider adding the 1918 zones here, if they are not used in yo

2020-11-22 15:40:13 30

原创 opencv编译

进入代码路径cd ~/opencv-4.1.2/modules执行cmake cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/home/fzz -D INSTALL_PYTHON_EXAMPLES=ON -D INSTALL_C_EXAMPLES=ON -D OPENCV_EXTRA_MODULES_PATH=/home/fzz/DeepVision/opencv4.1.2/opencv_contrib-4.1.2/mo.

2020-09-07 17:42:53 19

原创 QtCreator Linux版本支持中文输入

配置qt中文环境$ sudo apt-get install fcitx-libs-qt fcitx-libs-qt5拷贝/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so到上述 QtCreator的插件目录/opt/Qt5.10.0/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts和 Qt 库

2020-07-15 15:40:29 71

原创 内核升级和降级

查看已安装的内核$ sudo dpkg --get-selections | grep linux不一样的系统版本升级内核要装的东西对应也不一样,需要根据 --get-selections 安装对应的内核组件, 使用apt-get 即可完成安装对应版本号的内核...

2020-01-13 21:43:04 216

原创 Ubuntu升级GCC编译器

sudo apt-get install -y software-properties-common sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt update sudo apt install g++-9Set it up so the symbolic links gcc, g++ point to the n...

2019-12-08 16:00:25 110

原创 Linux设置svn diff tool 为beyondcompare

Ubuntu下使用bcompare进行svn文件diff处理值得注意的是:脚本最后需要再加上exit 0这个返回0是为了防止上面的diff命令的返回值被svn diff接收到以为是出错

2019-10-19 10:00:49 220 1

原创 尾递归

相信很对人对递归函数并不陌生,而滥用递往往容易造成栈溢出。那么有什么好的方法可以避免而同时又保证程序的效率呢?其实在递归中存在着一种尾递归的形式,尾递归函数的特点是在回归过程中不用做任何操作(只保留一个调用记录),这个特性很重要,因为大多数现代的编译器会利用这种特点自动生成优化的代码。定义尾调用的概念非常简单,一句话就能说清楚,就是指某个函数的最后一步是调用另一个函数。尾递归则是调用函数本身...

2019-08-28 17:27:24 84

原创 可重入锁与不可重入锁以及常见的死锁现象

可重入锁和不可重入锁Mutex可以分为递归锁(recursive mutex)和非递归锁(non-recursive mutex)。可递归锁也可称为可重入锁(reentrant mutex),非递归锁又叫不可重入锁(non-reentrant mutex)。二者唯一的区别是,同一个线程可以多次获取同一个递归锁,不会产生死锁。而如果一个线程多次获取同一个非递归锁,则会产生死锁。Wind...

2019-08-27 23:42:40 3594

原创 C++ 11 中的几种锁

互斥锁(mutex)可以避免多个线程在某一时刻同时操作一个共享资源,标准C++库提供了std::unique_lock类模板,实现了互斥锁的RAII惯用语法:eg:std::unique_lock<std::mutex> lk(mtx_sync_);条件锁(condition_variable)条件锁就是所谓的条件变量,某一个线程因为某个条件未满足时可以使用条件变量使该程序...

2019-08-27 23:16:50 8239

原创 C++11 6个特种函数

6个特种函数,以class A为例:默认构造函数:A();析构函数:~A();复制构造函数:A(const A& a);复制赋值运算符:A& operator=(const A& a);移动构造函数:A(A&& a);移动赋值运算符:A& operator=(A&& a);生成默认移动操作的条件:如果一个类定义了...

2019-08-22 21:29:42 106

原创 C++名词解析

左值:右值:左值引用:右值引用:万能引用:提领(dereference):获取指针地址或引用地址上的值;类型提升:可以理解为对数据类型进行扩展(参考:【C/C++】类型提升)...

2019-08-22 20:21:13 63

原创 Linux 知识点

常见术语POSIX(Portable Operating System Interface):可移植操作系统接口常用指令apt-get update:同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。apt-get grade: 升级已安装的所有软件包,升级之后的版本就是本地索引里的,...

2019-08-22 17:11:08 50

原创 Python 知识点

@staticmethod、@classmethod和实例方法@staticmethod和@classmethod的用法

2019-08-22 16:39:09 47

原创 Modern C++ 新特性

智能指针weak_ptr一般配合shared_ptr使用,当某个地方需要用到shared_ptr时,但不确定shared_ptr指向的对象是否已经销毁,可以利用weak_ptr来判断是否过期,并且构造出一个shared_ptr,该操作是原子的。eg1:std::shared_ptr<Widget> spw1 = wpw.lock(); //如果wpw已经过期 //spw1的...

2019-08-22 14:57:14 77

原创 Android App 学习笔记

Android Studiogradle设置为本地版本:需要配置:File -> Settings设置gradle-wrapper.properties:四大组件安卓四大组件:活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)、内容提供器(Content Provider)Activity(活动)活动的四种状态:运行...

2019-08-22 14:33:51 60

原创 tcpdump的使用

tcpdump工具抓包抓取TCP数据参考文章抓取TCP数据tcpdump tcp -X-X: 表明以十六进制和ASCII字符显示包文内容;tcp:表明抓取tcp的协议;参考文章tcpdump抓取TCP/IP数据包分析从tcpdump抓包看TCP/IP协议Tcpdump使用...

2019-08-22 11:03:08 28

原创 C/C++ static 关键字使用

在C语言中在.c中(为什么是.c,后面注意事项会说明)定义全局静态变量,控制访问范围,仅仅局限在本文件中才能访问,即便是 extern 外部声明也不可以;这样一来就允许在多个源文件中定义相同的变量,且不受干扰。否则编译会报重复定义。同理修饰于函数。在C++中注意事项在C/C++中,不推荐在头文件中定义static全局变量,如果在头文件中定义了static变量,被多个文件引用,编译可以...

2019-08-22 10:57:02 270

原创 编程思想

RAII(资源获取即初始化)RAII,Resouce Acquisition Is Initialization,翻译成中文的意思就是资源获取即初始化,RAII主要用于保证申请的资源得到正确的释放。最初由Bjarne Stroustrup提出,为了保证资源能够正确的得到释放,RAII原则是所有的资源都必须有管理对象,而资源的申请操作在管理对象的构造函数中进行,而资源的回收则在管理对象的析构函数...

2019-08-21 22:40:41 116

原创 Ubuntu安装搜狗输入法

1、sudo apt-get install -f安装Fcitx框架环境 2、从搜狗官网下载Linux版本的安装包,安装:sudo dpkg -i *.deb3、设置默认语言环境参考文章:Ubuntu16.04安装搜狗拼音输入法(中文输入法)后续完善 ...

2018-07-17 11:03:30 149

原创 windows和ubuntu通过samba文件互相访问

1、安装samba:sudo apt-get install samba samba-common2、smba安装好之后,会在/etc/samba/文件夹下有一个smb.conf文件,此文件是samba的一个配置文件,修改该配置文件:sudo gedit /etc/samba/smb.conf 3、在文件末尾追加如下配置:[src]path = /home/srcpublic = yesbrow...

2018-07-09 11:27:31 811

原创 log4cpp的Linux环境下的编译安装

如下指令需要在root权限下执行1、./configure --prefix=&lt;location&gt;   --with-pthreads安装完成后,log4cpp.so库默认在/usr/local/lib下,头文件在/usr/local/include目录下。可通过该配置项修改为&lt;location&gt;所描述的位置。2、make3、make check4、make install...

2018-06-10 16:17:20 1904

原创 【面试题】String类型中间可以包含'\0'吗

答案是可以的,Test:#include #include using namespace std;int main(){ char *cStr = "hello\0world"; string str{'a', 'b', '\0', 'c'}; string str1("world\0hello"); unsigned char b = 255;

2018-04-07 15:35:49 4070 1

原创 【C/C++】类型提升

#include #include using namespace std;int main(){    char a = -1;    unsigned char b = 255;    printf("a = 0x%x  b = 0x%x \n", a, b);    system("pause");    return 0;}运行结

2018-04-06 23:05:15 556

原创 【面试题】将字符串中的所有空格去掉,要求时间复杂度O(n),空间复杂度O(1)

//题目:将字符串中的所有空格去掉,要求时间复杂度O(n),空间复杂度O(1)#include &lt;iostream&gt;#include &lt;string.h&gt;#include &lt;assert.h&gt;using namespace std;int delSpace(char *pStr){    assert(pStr);    char *...

2018-04-06 21:35:15 1768

原创 OpenCV学习积累

1、基本数据类型2、矩阵和图像类型3、编译OpenCV源码参考文章:【OpenCV入门教程之七】 玩转OpenCV源代码:生成OpenCV工程解决方案与OpenCV源码编译

2018-03-05 22:13:16 146

原创 虚函数_纯虚函数_抽象类

1、只要含有纯虚函数的类就是抽象类,不能实例化对象;2、关于多态,简而言之,就是用父类类型的指针指向其子类实例,然后通过父类的指针调用实际子类的成员函数。※需要和虚函数表结合理解(参考文章:C++进阶之虚函数表)例程:#include <iostream>using namespace std;class A // 抽象类{public: virtual...

2018-03-04 16:32:42 140

原创 HTTPS简介以及和HTTP的区别

概念说明:SSL(Secure Sockets Layer):安全套接层TSL(Transport Layer Security):传输层安全SSL和TSL是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密保护。HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer):是以安全

2018-02-28 22:57:18 164

原创 多线程之间的通信

【同步和互斥的区别理解】同步:又称直接制约关系,是指多个线程(或进程)为了合作完成任务,必须严格按照规定的 某种先后次序来运行。即两个线程之间存在依赖关系。互斥:又称间接制约关系,是指系统中的某些共享资源(如全局变量、打印机等),一次只允许一个线程访问。当一个线程正在访问该临界资源时,其它线程必须等待。同步方式:事件(Event)、消息队列、管道(即进程间通信的管道,亦可实现线程之间的

2018-02-26 22:37:32 273

原创 IP地址划分和子网划分

1、IP地址划分2、子网划分

2018-02-14 10:50:59 1295

原创 MFC+OPENCV显示摄像头数据

github地址:mfc_opencv开发环境:VS2013界面开发框架:MFC摄像头驱动:opencv3.3值得注意的是:1、opencv3.3只下载到了64位的库文件,所以工程默认只配置了64位应用程序;2、网上搜到的很多例程都是说通过CvvImage.h和CvvImage.cpp去进行GDI绘制,该例程通过opencv获取到一帧图像,通过GDI绘制,并不依赖CvvIm

2018-01-20 20:37:31 1339

原创 MFC模态窗口和非模态窗口

模态窗口:程序运行的过程中,若出现了模态对话框,那么主窗口将无法发送消息,直到模态对话框退出才可以发送。即只能操作弹出窗口,不能操作主窗口,只有当模态窗口退出后才能操作主窗口。创建并显示一个模态窗口://创建一个模态对话框CTestDialog td;// 创建窗口变量td.DoModal(); // 已模态方式显示非模态窗口:程序运行过程中,若弹出的窗口是非模态的,则

2018-01-12 22:26:36 1531

原创 A + B Problem II

A + B Problem IITime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 3947 Accepted Submission(s): 1386Problem Descri

2017-11-15 22:09:58 193

转载 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2017-11-05 15:03:04 131

原创 整数对

整数对Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 3567 Accepted Submission(s): 1367Problem DescriptionGard

2017-11-04 23:14:01 545

原创 Fibonacci

FibonacciTime Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4554 Accepted Submission(s): 2056Problem Description

2017-11-04 21:50:40 183

原创 函数出参的运用

一般来说,函数出参采用指针形式和引用形式。注:&多用于参数传入,对于传出参数还是用*的比较好。用*可以设计缺省值,而&确不能。#include using namespace std;void SwapByPoint(int* x, int* y) //指针传参函数的声明{ *x = *y = 1;}void SwapByReference(int &x,

2017-10-16 22:56:48 1174

原创 VC6.0使用 QA

Q:VC 6.0中怎样设置才能生成Debug或Release版本的程序?A:vc右上角菜单栏或工具栏的空白处右键,选上Build项,使build工具栏可见,在Build工具栏上就可以选择工程的Debug或Release版本。或者菜单栏Build->Batch Build,在弹出的对话框中选择编译哪个版本,或者两个版本都编译。Q:VC6.0中添加库文件和头文件?A:在VC6.0中

2017-10-15 14:36:56 190

原创 头文件包含的两点原则

两点原则第一个原则如果可以不包含头文件,那就不要包含了,这时候前置声明可以解决问题。如果使用的仅仅是一个类的指针,没有使用这个类的具体对象(非指针),也没有访问到类的具体成员,那么前置声明就可以了。因为指针这一数据类型的大小是特定的,编译器可以获知。第二个原则尽量在CPP文件中包含头文件,而非在头文件中。假设类A的一个成员是是一个指向类B的指针,在类A的头文件中

2017-10-06 22:21:24 569

转载 关于typedef的用法总结

参考文章:关于typedef的用法总结

2017-09-29 15:48:40 155

原创 wireshark命令行抓包

单一网卡:c:cd C:\Program Files\Wiresharktshark.exe -w D:\test\test.pcapngpause保存为.bat(批处理文件)多网卡:c:cd C:\Program Files (x86)\Wiresharktshark.exe -i 3 -w D:\test\test.pcapngpause

2017-09-12 21:52:28 1992

基于STM32高精度频率计的设计

这是我自己采用STM32的定时器外部计数模式,考虑到了计数溢出中断。开设1s的时钟窗口。数据均通过MATLAB二次拟合处理过,以纠正误差。理论上可以测到1hz-无穷的频率范围(但在本实验中只是测到了1Mhz.对1Mhz以上数据并没进行数据拟合,故认为不在指标内),分辨率为1Hz(因为是开了1s的时间窗口,时间窗口越大,分辨率越高)高精度频率计。避免了输入捕获受输入时钟的大小限制。自己设计的方案。当然数据拟合部分还能分段拟合,精度就更高了。

2014-08-10

NRF24L01双向通信

基于单片机的NRF24L01通信程序。测试通过,保证能用。

2014-05-29

18B20串口显示

测试通过,能用。又不懂的可以给我留言,提供技术支持。

2014-05-29

uCGUI最新固件库

最新的固件库哦,亲测能用哦。是基于KEIL mdk开发使用,一般8、16、32位单片机开发都OK。

2014-04-20

VC6.0绿色版(免安装)_亲测_Win7可用

VC6.0绿色版(免安装)_亲测_Win7可用。双击short Cut即生成快捷方式到桌面,即可运行。

2018-04-07

如何制作DLL接口及使用

具体教程详见:http://blog.csdn.net/u010275850/article/details/53742683

2016-12-19

fzzjoy的留言板

发表于 2020-01-02 最后回复 2020-01-02

同样的一个变量,为什么两次输出不一样呢?

发表于 2015-12-08 最后回复 2015-12-13

【求助】C语言关于pow函数问题

发表于 2015-05-11 最后回复 2015-12-06

关于C++中const形参在派生时的理解。

发表于 2015-04-14 最后回复 2015-04-15

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

TA关注的人 TA的粉丝

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