自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Qt | 入门】基础知识 day01

文章目录Day01Qt应用程序框架创建项目项目架构实例信号与槽connect()函数自定义信号自定义槽函数使用Lamda表达式定义槽函数坐标系统内存回收机制QMainWindow对话框标准对话框QMessageBox文件对话框QFileDialogDay01Qt应用程序框架创建项目创建项目时需要选择基类Qt窗口基类:QMainWindow、QWidget、QDialog。QMainWindow是用于创建带菜单栏的PC端窗口的基类QWidget是所有图形界面中控件的基类QDialog是用于创

2022-01-25 20:34:51 961

原创 【Linux | 项目】数据加密传输平台(二、组件开发——统一共享内存组件)

组件开发统一共享内存读写组件常用底层API:int shmget(key_t key, size_t size, int shmflg);获取一块共享内存。参数key为非016进制数,描述共享内存状态;size为共享内存大小;shmflg为表示共享内存状态。返回int类型的shmidvoid *shmat(int shmid, const void *shmaddr, int shmflg);获取指定共享内存的操作指针。参数shmid为共享内存ID标识;shmaddr为用户指定的共享内存地址,一般

2021-11-10 11:15:39 1151

原创 【Linux | 项目】数据加密传输平台(二、组件开发——统一通讯组件)

组件开发统一通讯组件Socketapi封装Socket通信的底层函数,如socket()、bind()、accept()等提高服务器和客户端连接的单位效率,方法为增加连接数。为避免建立和销毁连接时花费过多时间,客户端使用连接池维护所有已经与服务器成功建立连接的socket连接连接池:存放客户端服务器有效连接的文件描述符fd封装连接池操作连接池初始化:int sockPool_init(int num, int ip, int port, void **handler);获取一条连接:int s

2021-11-09 23:12:39 549

原创 【数据库系统】第一章 数据库系统概论

文章目录数据库系统第一章一、概论1.1 数据库与数据管理1.2 数据模型与信息模型关系模型1.3 数据库系统结构三级模式结构客户/服务器结构分布式系统1.4 数据库管理系统DBMS用户访问数据库的工作过程(重点)数据库系统第一章一、概论数据管理好坏的标准:数据冗余:数据冗余是指同一数据多次存放。产生的问题:浪费存储空间;修改麻烦;潜在的数据不一致性数据共享:体现在多个应用可以使用同一数据、记录、数据项;同一时刻多个用户可存取同一数据数据独立性:应用程序之间相互独立,不受影响。即数据结构的修改不

2021-10-27 17:23:42 750

原创 【C++ | 构造函数】使用初始化列表的性能优势

C++初始化列表格式:class Test{ int a; double b; string c; Test(int a1, double b1, string c1): a(a1), b(b1), c(c1){}};构造函数执行的两个阶段:初始化阶段:类中所有类型的成员变量在初始化阶段都会进行初始化操作,不管该成员是否出现在初始化列表中计算阶段:在构造函数的函数体内执行如果不使用初始化列表,类会在初始化阶段先调用默认构造参数对成员变量进行初始化,然后在

2021-10-22 15:52:48 730 1

原创 【Linux | 项目】数据加密传输平台(二、组件开发——统一报文编解码)

组件开发统一报文编解码组件Libmessagereal需要同时支持32位和64位Windows、Linux平台,具有跨平台特性长连接:成功建立连接,进行一次数据传输后,不关闭连接,长期保持连通状态。如果两个应用程序之间有新的数据需要传输,则直接复用这个连接,无需再建立一个新的连接。下次再用的时候重新建立一个新的连接短连接:每一次的数据传输都需要建立一个新的连接,用完再马上关闭它。下次再用的时候重新建立一个新的连接常见报文类型:HTTP、XML、JSON、BER这里以BER编码规则为主BER报文

2021-10-15 11:27:48 262

原创 【Linux | 项目】数据加密传输平台(一、系统模块)

Linux项目——数据加密传输平台子系统统一数据库访问组件libicdbapi统一通讯组件SocketApi统一报文编解码组件Libmessagereal统一共享内存读写组件密钥协商服务程序SecMngServer密钥协商客户端程序SecMngClient密钥协商服务配置管理终端SecMngServerAdmin外联接口AppInterface对称密钥加解密接口安全传输平台数据库脚本人员分配:通用组件:1人后台框架和业务流:1人后台配置管理(MFC):1人前台框架和业务流(

2021-10-12 12:01:36 293

原创 【C++ | 智能指针】C++防止内存泄漏使用的三种智能指针(unique_ptr、shared_ptr、weak_ptr)

C++智能指针作用:智能指针是为了解决动态内存分配时带来的内存泄漏以及多次释放同一块内存空间而提出的类型:unique_ptr:独占资源所有权shared_ptr:共享资源所有权weak_ptr:临时/无所有权,通常和shared_ptr一起使用使用智能指针需要引入头文件**#include<memory>** unique_ptr使用:std::unique_ptr<Entity> e1(new Entity());创建一个指向Entity类型对

2021-10-08 00:19:58 611

原创 【Linux | 数据库】使用Workbench远程登录Linux的MySQL数据库

Workbench远程连接Linux服务器的MySQL数据库背景为了在windows中查看服务器MySQL数据库的表项,使用可视化程序Workbench来方便进行数据库测试和简单的维护。Linux服务器为Ubuntu版本步骤检查镜像源下载前请注意选择合适的镜像源,建议使用清华源(mirrors.tuna.tsinghua.edu.cn)或者阿里源(mirrors.aliyun.com),可在“软件与更新”中选择想要使用的镜像源安装MySQL此次安装的MySQL版本为5.7一共需要执行

2021-10-06 01:10:53 1769

原创 【Linux | 文件】目录、目录项、inode索引结点、超级块

目录、目录项、inode索引节点的介绍 目录每一个在文件系统中创建的文件夹都是目录文件。目录文件是一种文件类型,每一个目录文件中包含的是该目录下所有子文件的目录项dentry目录文件权限:读:目录可以被浏览。如ls、tree等写:创建、删除、修改文件。如mv、touch、mkdir等执行:可以被打开、进入。如cd目录黏着位/粘滞(sticky)位:一般用于权限为777即rwxrwxrwx的目录文件,针对other用户,对普通文件设置黏着位无效。作用是目录中所有文件的删除、移动和修改只

2021-09-23 18:51:08 2364

原创 【Linux | 系统编程】Linux系统编程(文件、进程线程、进程间通信)

程序:是存储在磁盘上的编译好的二进制文件进程:是活跃的程序,占用系统资源,在内存中执行并发:在操作系统中,一个时间段中有多个进程都处于已启动运行到运行完毕之间的状态。但是任一时刻点上只有一个进程在运行单道程序设计:所有进程一个个排队依次执行多道程序设计:在计算机内存中同时存放几道相互独立的程序,在管理程序控制下相互穿插运行MMU:内存管理单元。负责进行虚拟地址到物理地址的映射管理孤儿进程:父进程先于子进程结束,则子进程成为孤儿进程。此时init进程会领养孤儿进程,即成为它的父进程。

2021-08-17 18:59:12 1508

原创 【Linux | 网络】Ubuntu缺少网络图标(NetworkManager),无法连接网络

Ubuntu无法联网昨天关闭虚拟机Ubuntu死机了,因为赶着关机所以就直接用任务管理器杀掉了虚拟机。第二天起来在开启虚拟机的时候就发现连不上网了。目测右上角的NetworkManager的图标消失,应该是NetworkManager出了问题。在直接使用restart命令重启NetworkManager服务无效后,查询相关问题得到了解决方法sudo service NetworkManager stop #停止networkmanager服务sudo rm /var/lib/NetworkManage

2021-08-17 18:47:17 4416 6

原创 【Linux | 系统编程】Linux命令基础

文章目录Linux命令基础Shell概述目录和文件类UNIX系统目录结构路径操作文件操作文件属性与用户用户组查找与检索安装和卸载软件压缩包管理进程管理Vimvim命令个性化vimGCC静态库和共享库静态库动态库Linux内存布局GDBMakefileLinux命令基础Shell概述shell:命令解释器,根据输入的命令执行响应命令Shell是UNIX的命令解释器,Linux的命令解释器是bash,作用是一样的cat /etc/shell可以查看到当前Linux系统中有哪些shellecho $

2021-08-10 17:33:24 163

原创 【计算机网络】(谢希仁第七版)第五章 运输层

计算机网络第五章五、运输层运输层向上面的应用层提供通信服务,属于面向通信的最高层,同时也是用户功能的最底层网络层IP协议只在源主机到目的主机之间作用,并不在意主机内进程通信的细节。而运输层协议TCP和UDP在源主机的某个通信进程到目的主机的对应的通信进程之间作用,范围更宽更深入端到端的通信是进程之间的通信功能:发送报文时的复用、接收报文后的分用运输层只有两种协议:面向连接的TCP、无连接的UDPTCP:相当于建立一条全双工的可靠信道UDP:提供一条不可靠信道两个对等运输实体在通信时传送的数

2021-08-07 08:24:45 299

原创 【计算机网络】(谢希仁第七版)第四章 网络层

计算机网络第四章四、网络层网络层可能提供的服务:可靠交付、数据报传输让网络负责可靠交付(不实际)使用面向连接的通信方式通信之前先建立虚电路,逻辑上相当于电路交换,始终占用一条电路虚电路:只是一条逻辑上的连接,分组都沿着这条逻辑连接按照存储转发的方式传送网络不需要负责可靠交付,依靠主机中的运输层负责可靠交付网络提供数据报服务网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务网络层在发送分组时不需要建立连接,每一个分组(IP数据报)独立发送,与其前后分组无关网络层传送的分组可

2021-08-07 08:23:38 437

原创 【计算机网络】(谢希仁第七版)第三章 数据链路层

计算机网络第三章三、数据链路层信道类型:**点对点信道:**使用一对一的点对点通信方式**广播信道:**使用一对多的广播通信方式。需要使用专用的共享信道协议来协调主机的数据发送链路(物理链路):一条无源的点到点的物理线路段,中间没有任何其他的交换结点数据链路(逻辑链路):把实现控制数据传输的通信协议的硬件软件加到链路上一般的适配器(网卡)都包括数据链路层和物理层的功能数据链路层传送的是帧数据链路层不要求可靠传输封装成帧形成:在一段数据的前后分别添加首部和尾部构成一个帧。首部和尾部可

2021-08-07 08:22:51 358

原创 【计算机网络】(谢希仁第七版)第二章 物理层

计算机网络第二章二、物理层传输媒体不输入物理层物理层考虑的是是怎样才能在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体作用:是要尽可能地屏蔽掉不同传输媒体和通信手段的差异。确定与传输媒体的接口的特性:机械特性:指明接口所用接线器的形状和尺寸、引线数目和排列、固定和锁定装置等电气特性:指明在接口电缆的各条线上出现的电压的范围功能特性:指明某条线上出现的某一电平的电压表示何种意义过程特性:指明对于不同功能的各种可能事件的出现顺序数据通信系统模型:数据:运送消息的实体

2021-08-07 08:21:31 134

原创 【C++ | 进阶】(侯捷)C++11/14新特性

C++11/14新特性〇、概述C++Standard演化:C++98(1.0)、C++03(TR1)、C++11(2.0)、C++14(对11一些地方的加强)C++2.0新特性包括语言和标准库层Header files区别:C++标准库的header files不带副档名(.h),例如#incldue<vector>新式C header files不带副名称(.h),例如#inlcude<cstdlio>旧式C header files带有副名称(.h),例如#in

2021-08-02 11:59:37 1773 2

原创 【计算机网络】(谢希仁第七版)第一章 概述

计算机网络第一章一、概述互连网(internet):局部范围内互连起来的计算机网络互联网(Internet):最大的计算机网络计算机网络中的node是结点,数据结构中树的node是节点与计算机网路连接的计算机称为主机计算机网络的发展:第一阶段:从单个网络ARPANET向互联网发展的过程第二阶段:建成三级结构的互联网。分别为主干网、地区网、校园网第三阶段:逐渐形成多层次ISP(互联网服务提供者)。任何机构和个人只要向某个ISP交纳规定的费用,就可从ISP获取所需的IP地址的使用权,并可通过

2021-08-02 11:54:16 243

原创 【C++ | 基础】进阶编程

C++重点内容进阶编程1. 模板针对C++泛型编程和STL技术1.1 模板的概念通用的模具,提高复用性,将类型参数化C++另一种编程思想就是泛型编程,主要技术就是模板模板机制:类模板、函数模板1.2 函数模板语法:template<typename T> 函数声明或定义typename表明其后面的符号是一种数据类型,可用class代替;T为通用的数据类型作用:建立一个通用函数,返回值和类型不具体指定,用一个虚拟的类型T代表使用:①自动类型推导:func(a,b);直接传

2021-05-18 20:02:05 472

原创 【C++ | 基础】核心编程

核心编程针对C++的面向对象编程技术解释,了解C++核心和精髓★★★ 1. 内存分区模型C++程序在执行时,内存大致分为4个区域代码区:存放函数体的二进制代码,由操作系统管理全局区:存放全局变量和静态变量栈区:由编译器自动分配释放,存放函数的参数值,局部变量等堆区:由程序员分配(new/malloc)和释放(delete/free),若程序员不释放,程序结束时由操作系统回收1.1 程序运行前程序编译后,生成.exe的可执行程序,未执行该程序前分为两个区代码区:存放CPU执行的机器

2021-05-18 19:59:59 968

原创 【C++ | 基础】基本语法(部分)

C++重点内容基本语法(部分)1. 指针1.1 基本概念作用:通过指针间接访问内存内存编号是从0开始记录的,一般用十六进制数表示,如0xf300可以利用指针变量保存地址指针就是一个地址1.2 指针变量声明:数据类型 * 指针变量名其中数据类型 *是一个整体,为指针数据类型初始化:指针变量名 = &被指向的变量通过&符号可以取得变量的地址赋给指针使用:*指针在指针前加上*表示解引用,找到指针指向内存中的数据,并且可以对内存中的数据进行读写操作1.3 指针所占空间指

2021-05-18 19:56:19 68

原创 【C++ | vector】关于vector变量的地址和首元素地址不相同的问题

问题背景一次debug中发现使用&vec和&vec[0]得到的两个地址居然不相同,即vector的对象存放的地址和首元素地址不相同。在C++中与vector最类似的数据结构是数组,而对数组进行取变量名地址和取首元素地址的结果是相同的,并且都存放在栈区。向量vector显示出了与数组不一样的特征解释分析在查询资料和实践后,得到了如下的解释:在C++中,vector的对象存放在栈区,元素存放在堆区,且变量名地址中存放的是堆区元素的首地址代码实践void test(){ vec

2021-04-04 00:51:12 3274

原创 【洛谷 | 算法1-2】排序 重点题解记录

P1177快速排序题目描述利用快速排序算法将读入的 NN 个数从小到大排序后输出。快速排序是信息学竞赛的必备算法之一。对于快速排序不是很了解的同学可以自行上网查询相关资料,掌握后独立完成。(C++ 选手请不要试图使用 STL,虽然你可以使用 sort 一遍过,但是你并没有掌握快速排序算法的精髓。)输入格式第 1 行为一个正整数 N,第 2 行包含 N 个空格隔开的正整数 ai,为你需要进行排序的数,数据保证了 Ai 不超过 109输出格式将给定的 N个数从小到大输出,数之间空格隔开,行末换行且

2021-03-03 19:11:44 444 1

原创 【洛谷 | 算法1-1】模拟与高精度 重点题解记录

P1065 作业调度方案题目描述我们现在要利用m台机器加工n个工件,每个工件都有m道工序,每道工序都在不同的指定的机器上完成。每个工件的每道工序都有指定的加工时间。每个工件的每个工序称为一个操作,我们用记号j-k表示一个操作,其中 j 为1到n中的某个数字,为工件号;k为1到m中的某个数字,为工序号,例如2-4表示第2个工件第4道工序的这个操作。在本题中,我们还给定对于各操作的一个安排顺序。例如,当n=3,m=2时,1-1,1-2,2-1,3-1,3-2,2-2 就是一个给定的安排顺序,即先安排第1

2021-02-27 17:59:09 510

原创 【洛谷 | 入门5】字符串 重点题解记录

P1957 口算练习题题目描述王老师正在教简单算术运算。细心的王老师收集了i道学生经常做错的口算题,并且想整理编写成一份练习。 编排这些题目是一件繁琐的事情,为此他想用计算机程序来提高工作效率。王老师希望尽量减少输入的工作量,比如5+8的算式最好只要输入5和8,输出的结果要尽量详细以方便后期排版的使用,比如对于上述输入进行处理后输出 5+8=13 以及该算式的总长度6。王老师把这个光荣的任务交给你,请你帮他编程实现以上功能输入格式第一行为数值 i接着的 i 行为需要输入的算式,每行可能有三个数据或

2021-01-15 19:41:40 249

原创 【洛谷 | 入门3】循环结构 重点题解记录

P1980 阶乘之和题目描述用高精度计算出 S = 1! + 2! + 3! + ⋯ + n!(n ≤ 50)其中“ ! ”表示阶乘,例如:5! = 5 × 4 × 3 × 2 × 1输入格式一个正整数 n输出格式一个正整数 S,表示计算结果输入输出样例输入#1输出#139说明/提示【数据范围】对于 100% 的数据,1 ≤ n ≤ 50【其他说明】注,《深入浅出基础篇》中使用本题作为例题,但是其数据范围只有 n ≤ 20,使用书中的代码无法通过本题。

2021-01-04 16:22:25 679

原创 【Python | AI】人工智能实训笔记

文章目录WEEK1day01Python介绍day02QT应用开发:哈哈镜day03QT多线程:播放视频文件实践:截图视频图像实现哈哈镜WEEK2day04创建新线程来逐帧捕获视频文件(本地文件、摄像头实时影像)人工智能、机器学习、深度学习相关线性单元与梯度下降day05用Pytorch实现梯度下降算法day06神经网络全连接神经网络卷积神经网络torch卷积函数卷积神经网络LeNet-5实现Torch框架结构说明WEEK3day07任务发布day08开发阶层手写数字识别(开发第三层)loader.pytr

2020-12-26 18:49:33 1686

原创 HTTP 500 匹配的通配符很全面,但无法找到元素‘mvc:annotation-driven’ 的声明

HTTP 500 - 内部服务器错误报错:Servlet[dispatcherServlet]的Servlet.init()引发异常根本原因:通配符的匹配很全面, 但无法找到元素 ‘mvc:annotation-driven’ 的声明分析得出为包含该元素的xml文件缺少对应的XML约束定义解决方法:加入http://www.springframework.org/schema/mvc/spring-mvc.xsd完整的名字空间如下:<?xml version="1.0" encoding=

2020-10-27 10:42:27 205

原创 【C++】阅读《C++ Primer》笔记 第一章

这里写目录标题一级目录二级目录三级目录1.开始预处理器指示符一级目录二级目录三级目录1.开始预处理器指示符

2020-08-23 09:37:46 209

空空如也

空空如也

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

TA关注的人

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