自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux C/C++ 多线程开发 - 基础介绍

​Linux C/C++多线程开发基础介绍

2022-11-06 11:39:42 900 1

原创 C++设计模式:单例模式

单例模式是指在整个系统的生命周期里,保证一个类只能产生一个实例,确保该类的唯一性。

2022-11-05 17:10:58 745

原创 XML - XML学习/XML文件解析器(C++)实现

XML学习以及XML文件解析器实现(C++)模仿大佬,造轮子,造轮子

2022-11-02 21:24:40 2451

原创 JDBC数据库连接池

JDBC数据库连接池,以及初始化步骤

2022-10-20 20:43:02 589

原创 XML文件格式学习

XML文件格式学习

2022-10-19 20:01:01 4024

原创 Linux学习 - Linux常用指令

这是我自己学习Linux的过程中经常会遇到的指令,比较常见,做一个总结。

2022-08-07 20:32:22 200

原创 Linux学习 - vi/vim编辑器

vi/vim编辑器学习

2022-08-05 16:38:47 279

原创 Qt - Qt5事件处理(鼠标事件)

Qt5鼠标事件(单击,释放,移动及其滚轮)

2022-08-05 13:51:04 2614

原创 计算机网络:基于HTTP的功能追加协议,HTTP1.1与HTTP2.0

了解一下基于HTTP新增的功能的协议,HTTP1.1与HTTP2.0之间的变化,以及HTTPS与HTTP的区别

2022-07-28 17:13:56 582

原创 计算机网络:与HTTP协助的Web服务器

与HTTP协助的Web服务器

2022-07-26 16:18:33 115

原创 计算机网络:关于HTTP状态码

HTTP状态码负责表示客户端HTTP请求的返回结果,标记服务器端的处理是否正常,通知出现的错误等工作。

2022-07-25 23:22:01 527

原创 计算机网络:简单的HTTP协议

关于简单的HTTP协议学习

2022-07-25 15:23:23 184

原创 C++:类型转换

类型转换​ 在C++中,类型转换分为显式转换和隐式转换隐式转换在C++语言中,某些类型之间互有关联,当两者进行相关运算的时候,可以用另一种关联类型的对象或值来代替。简而言之,如果两种类型可以相互转换,那么他们彼此就是关联的例如简单的加法运算,int val = 3.14+3,在C++语言中,C++不会直接将两个不同类型的数值进行相加,而是根据类型转换规则设法将运算对象的类型统一后在进行求值,但,以上的过程不需要程序员的介入,甚至不需要程序员的了解,故,它们被称为隐式转换(implicit conve

2022-04-15 20:23:00 1184

原创 我的OpenCV4学习之旅(2)-图像数据的载入,显示与保存

我的OpenCV4学习之旅(2)-图像数据的载入,显示与保存图像存储的容器 — Mat类​ 数字图像在计算机中是以矩阵形式存储的,矩阵中的每一个元素都描述一定的图像信息,如亮度,颜色等OpenCV提供了一个Mat类用于存储矩阵数据Mat类介绍​ 在OpenCV不断地版本更新中,OpenCV引入了C++接口,提供了Mat类用于存储数据,利用自动内存管理技术很好地解决了内存自动释放的问题,当内存不再需要时,立即释放内存​ Mat类用来保存矩阵类型的数据信息,包括向量,矩阵,灰度或彩色图像等数据Ma

2022-04-14 11:31:42 2323

原创 我的OpenCV4学习之旅(1)-OpenCV4初步了解

我的OpenCV4学习之旅(1)-OpenCV4初步了解OpenCV4学习笔记总结资料来自:《OpenCV4 快速入门》,哔哩哔哩 -OpenCV4 C++快速入门视频30讲Opencv4简单介绍​ OpenCV4是目前最流行的计算机视觉处理库之一,是一个开源的计算机视觉库(Open Source Computer Vision Library,OpenCV4)。​ 简单来说,OpenCV4可以用来对图像进行处理。而图像处理的基本概念,图像处理一般是指数字图像处理(digital image pro

2022-04-12 15:14:02 699

原创 模板与泛型编程浅谈

模板与泛型编程浅谈摘要(Effective C++):​ C++template的最初发展动机很直接:让我们得以建立“类型安全”的容器如vector,list和map。然而当愈多人用上templates时,他们发现template有能力完成愈多可能的变化。容器当然很好,但泛型编程(generic programming)——写出的代码和其所处理的对象类型彼此独立——更好。STL算法如for_each,find和merge就是这一类编程的结果。最终人们发现,C++template机制自身是一部完整的图灵机

2022-03-30 17:33:22 1330

原创 Standard Template Library(STL,标准模板库)

Standard Template Library(STL,标准模板库)STL(标准模板库)是C++标准程序库的核心,它深刻影响了标准程序库的整体结构。STL是一个泛型(generic)程序库,提供一系列软件方案,利用先进,高效的算法来管理数据。STL的所有组件都由template(模板)构成,故其元素可以是任意型别。STL组件(STL Components)通过C++开发者们精心设计的组件,共同构筑起了STL的基础。而在这些组件之中最为重要的要数迭代器,容器,算法容器 Containers

2022-02-25 19:51:55 1261

原创 C++相关基础了解

C++相关基础特性了解空指针​ 空指针(null pointer)不指向任何对象,在试图使用一个指针之前代码可以首先检查它是否为空。以下列出几个生成空指针的方法:int *p1 = nullptr; // 等价于int *p1 = 0int *p2 = 0; // 直接将p2初始化为字面常量0// 需要首先#include<cstdlib>int *p3 = NULL; // 等价于int *p3 = 0;得到空指针最直接的方法就是用字面值nullptr来初始化指针,这也是C+

2022-01-24 15:02:08 393

原创 字符串(string),向量(vector)和数组学习总结

字符串(string),向量(vector)和数组string和vector是两种最重要的标准库类型,string支持可变长字符串,vector表示可变长集合数组,与之相配套的标准库类型中的迭代器,属于string和vector的配套类型,经常用于访问string中的字符或者vector中的元素命名空间的using声明在C++的初步学习之中,我们往往会敲这样的一段代码,using namespace std;一开始的学习之中,我们也不知道其中的意思,只需要明白照着敲就行简单来说,到目前为止,我

2022-01-15 15:11:16 3274

原创 随机数学习总结

随机数​ 在新标准出现之前,C和C++都依赖于一个简单的C库函数rand来生成随机数。而rand函数界限:在stdlib.h头文件中有宏**#define RAND_MAX 0x7fff**,即rand产生一个0~0x7fff的均匀分布的伪随机整数,每个随机数的范围在0和一个系统相关的最大值(至少为32767)之前rand函数调用:rand()函数的每次调用前都会查询是否调用过srand(seed),是否给seed设定了一个值,如果有那么它会自动调用srand(seed)一次来初始化它的起始值若

2022-01-15 15:08:48 376

原创 图:图的概念

图:图的概念图的定义图(Graph)G由顶点集合V(G)和边集合(G)构成说明:对于n个顶点的图,对每个顶点连续编号,即顶点的编号为0~n-1。通过编号唯一确定一个顶点图抽象数据结构类型 = 逻辑结构 + 基本运算(运算描述)图的基本运算如下:InitGraph(&g):图初始化ClaerGraph(&g):销毁图DFS(G,v):从顶点v出发深度优先遍历BFS(G,v):从顶点v出发广度优先遍历在图G中,如果代表边的顶点对是无序的,则称G为无向图。用圆括号序偶表示

2021-07-22 13:30:16 278

原创 树和二叉树:二叉树的构造

树和二叉树:二叉树的构造回顾同一棵二叉树(假设每个节点值唯一)具有唯一先序序列,中序序列和后序序列但不同的二叉树可能具有相同的先序序列,中序序列或后序序列例如:以下命题成立否?同时给定一棵二叉树的先序序列和中序序列就能唯一确定这棵二叉树。(正确)同时给定一棵二叉树的中序序列和后序序列就能唯一确定这棵二叉树。(正确)同时给定一棵二叉树的先序序列和后序序列就能唯一确定这棵二叉树。(错误)定理1: 任何n(n>0)个不同节点的二叉树,都可由它的中序序列和先序序列唯一地确定由先序和

2021-06-20 16:13:09 1285 1

原创 C++项目练手:复数类的功能实现

C++项目练手:复数类的功能实现复数的相关功能相关功能:建立复数类,初始化复数用户输入复数信息复数信息的输出求复数的绝对值实现复数的加,减,乘,除,乘方等运算注:界面友好(良好的人机交互),程序加必要的注释复数类的定义:#ifndef _COMPLEX_#define _COMPLEX_#include<iostream>#include<string>#include<iomanip>#include<cmath>usi

2021-06-19 20:39:04 1086 1

原创 C++项目练手:矩阵类的功能实现

C++项目练手:矩阵类的功能实现C++课程设计:矩阵类的相关功能实现矩阵简述: 实数矩阵是由一个按照长方阵列排列的实数集合。除数据外,两个实数矩阵可以进行加法和乘法运算,一个矩阵也可以和一个实数相乘,得到一个新的矩阵,请基于抽象出的矩阵的属性和方法,定义和实现一个矩阵类,并编写主函数,测试矩阵对象的构造和测试。功能实现要求:在缺省情况下,构造一个4*4的数据全为0的矩阵可以按给定的行数和列数,构造一个值为全0的矩阵可以使用给定的矩阵构造一个新的矩阵(定义并使用拷贝构造函数)可以获取矩阵中的给

2021-06-13 15:58:20 3214 1

原创 树和二叉树:二叉树遍历的应用

树和二叉树:二叉树遍历的应用二叉树3种递归遍历算法的应用例题:假设二叉树采用二叉链存储结构存储,设计一个算法,计算一棵给定二叉树的所有节点个数解:计算一棵二叉树b中所有节点个数的递归模型f(b)如下:对应的递归算法如下:int Nodes(BTNode *b) { int num1,num2; if(b==NULL) return 0; else return Node(b->lchild)+Node(b->rchild)+1;} //先左子树,再右子树,最后根节

2021-06-11 17:44:14 194 1

原创 C++赋值兼容规则

C++赋值兼容规则基类与派生类对象之间的赋值兼容关系不同类型数据之间的自动转换和赋值,称为赋值兼容。在基类和派生类对象之间也存在赋值兼容关系,基类和派生类对象之间的赋值兼容规则是指在需要基类对象的任何地方,都可以使用公有派生类对象来替代根据赋值兼容规则,在基类Base的对象可以使用的任何地方,都可以用派生类Derived的对象来替代,但只能使用从基类继承来的成员。(1)派生类对象可以向基类对象赋值,即用派生类对象中从基类继承来的数据成员,逐个赋值给基类对象的数据成员。例如:Base b; //定义

2021-06-09 19:45:51 1902 1

原创 树和二叉树:二叉树的遍历

树和二叉树:二叉树的遍历二叉树遍历的概念二叉树的遍历是指按照一定次序访问树中所有节点,并且每个节点仅被访问一次的过程遍历是二叉树最基本的运算,是二叉树中其他运算的基础二叉树的组成:1.先序遍历过程先序遍历NLR二叉树的过程是:访问根节点;先序遍历左子树;先序遍历右子树;二叉树先序遍历演示先序遍历序列:A B D G C E F (遍历完毕)先序序列的第一个节点是根节点2.中序遍历过程中序遍历LNR二叉树的过程是:中序遍历左子树;访问根节点;中序遍历右子树;

2021-06-07 08:17:38 737

原创 树和二叉树:二叉树基本运算及其实现

树和二叉树基本运算及其实现二叉树的基本运算概述归纳起来,二叉树有以下基本运算:创建二叉树CreateBTNode(*b, *str):根据二叉树括号表示法字符串str生成对应的二叉链存储结构b销毁二叉链存储结构DestroyBT(*b):销毁二叉链b并释放空间查找节点FindNode(*b,x):在二叉树b中寻找data域值为x的节点,并返回指向该节点的指针找孩子节点LchildNode( p) 和RchildNode( p):分别求二叉树中节点*p的左孩子节点和右孩子节点求高度BTNode

2021-06-02 20:07:00 3673

原创 树和二叉树:二叉树的存储结构

树和二叉树:二叉树的存储结构二叉树的顺序存储结构回顾二叉树的性质4,完全二叉树节点按层序编号:完全二叉树的顺序存储结构非完全二叉树的顺序存储结构二叉树顺序存储结构的特点:对于完全二叉树来说,其顺序存储是十分合适的对于一般的二叉树,特别是对于那些单分支节点较多的二叉树来说是很不合适的,因为可能只有少数存储单元被利用,特别是对退化的二叉树(即每个分支节点都是单分支的),空间浪费更是惊人在顺序存储结构中,找一个节点的双亲和孩子都很容易二叉树的链式存储结构借鉴树的孩子链存储结构 - 二

2021-06-02 16:53:05 2158

原创 树和二叉树:二叉树的概念

树和二叉树:二叉树的概念二叉树的定义二叉树是有限的节点集合(递归定义)这个集合或者是空或者由一个根节点和两棵互不相交的称为左子树和右子树的二叉树组成二叉树的5种基本形态:二叉树是可以采用树的逻辑结构表示法,其4种表示法如下:树形表示法文氏图表示法凹入表示法括号表示法二叉树和2次树有什么区别?度不同度为2的树要求每个节点最多只能有两棵子树,并且至少有一个节点有两棵子树。二叉树的要求是度不超过2,节点最多有两个叉,可以是1或者0分支不同度为2的树有两个分支,但分支没有左

2021-05-29 17:28:27 1642

原创 树和二叉树:树的运算和存储结构

树的运算和存储结构树的基本运算树的运算主要分为三大类:查找满足某种特定关系的节点,如查找当前节点的双亲节点等插入和删除某个节点,如在树的当前节点上插入一个新节点或删除当前节点的第i个孩子节点等遍历树中每个节点树的遍历树的遍历运算是指按某种方式访问树中的每一个节点且每一个节点只被访问一次主要的遍历方法:(1)先根遍历:若树不空,则先访问根节点,然后依次先遍历各棵子树(2)后根遍历:若树不空,则先依次后根遍历各棵子树,然后访问根节点(3)层次遍历:若树不空,则自上而下,自左至右访

2021-05-27 13:14:25 720 1

原创 异常处理操作

异常处理异常处理的基本概念1.为什么要异常处理在设计各种软件系统中,处理程序中的错误和其他反常行为是非常困难的,比如服务器上长期允许的网络服务程序将80%的代码用于实现错误检测和错误处理异常是指程序运行时出现的不正常。程序运行过程中可能会出现下列异常:(1)CPU异常。在计算过程中,出现除数为0的情况(2)内存异常:使用new或malloc申请动态内存但存储空间不够;数组下标越界;使用野指针,迷途指针读取内存(3)设备异常:无法打开文件,或能够打开文件但文件有损坏,从而无法读取数据;正在读取磁

2021-05-26 09:42:49 371

原创 类模板

类模板类模板的定义

2021-05-25 19:00:44 4317

原创 队列(queue)和栈(stack)

队列(queue)和栈(stack)队列queue队列(queue)是一种先进先出FIFO(first in first out)的线性表。它只允许在表的一端进行插入元素,而在另一端删除元素,最早进入队列的元素最早离开。在队列中,插入的一段称为队尾(back),删除的一段称为队头(front)队列定义在< queue >头文件中队列类成员函数原型如下://----容量capacity----bool empty(); //测试是否为空队列size_type size(); //返回

2021-05-24 16:45:21 555

原创 列表list

列表list列表的使用list是一个双向链表,因此它的内存空间是可以不连续的,通过指针来进行数据的访问,这使得list的随机访问效率比较低,因此list没有提供[]运算符的重载。但list可以很好的支持任意地方的插入和删除操作,只需要移动指针即可列表定义在< list >头文件中列表类成员函数原型如下://----迭代器iterators----iterator begin(); //返回表头元素为迭代器起始iterator end(); //返回表尾元素为迭代器结束revers

2021-05-23 17:19:30 119

原创 典型运算符的重载

典型运算符的重载构造“分数”类例:构建一个“分数”类Fraction

2021-05-23 13:43:21 157 1

原创 虚函数

虚函数虚函数实现多态的条件被virtual关键字修饰的成员函数,就是虚函数。虚函数的作用就是实现多态性——以共同的方法,对不同的对象采取不同的策略1.虚函数的定义虚函数只能是类中成员函数,且不能是静态的。在成员函数定义或声明前面加上关键字virtual,即定义了虚函数:class 类名 { //类体 ... virtual 返回类型 函数名(形式参数列表); //虚函数 ...};class Point { //Point类表示平面上的点 ... virtual double ar

2021-05-21 13:41:29 1359

原创 多态性

多态性多态性的概念派生一个类的原因并非总是为了继承或添加新成员,有时是为了重新定义基类的成员,使基类成员“获得新生”面向对象程序设计的真正力量不仅仅是继承,而是允许派生类对象像基类对象一样处理,其核心机制就是多态和动态联编多态是指同样的消息被不同类型的对象接收时导致不同的行为。所谓消息是指对类成员函数的调用,不同的行为是指不同的实现,也就是调用了不同的函数从广义上说,多态性是指一段程序能够处理多种类型对象的能力在C++中,这种多态性可以通过重载多态(函数和运算符重载),强制多态(类型强制转换),

2021-05-20 21:33:03 4696

原创 多重继承

多重继承多重继承派生类除去一个类从一个基类派生,C++还支持一个派生类同时继承多个基类1.多重继承派生类的定义如果已经定义了多个基类,那么定义多重继承的派生类的形式为:class 派生类名:访问标号1 基类名1,访问标号2 基类名2,... { //类体 成员列表};class A { };class B : public A { }; //A-Bclass C : public A { }; //A-Cclass D : public B,public C { }; //B-D,C

2021-05-17 20:30:51 2932

原创 向量vector

向量vector向量的使用迭代器(iterator) 是一种允许检查容器内元素,并实现元素遍历的数据类型。迭代器提供了比下标操作更一般化的方法:所有的标准库容器都定义了相应的迭代器类型,只有少数容器支持下标操作。因为迭代器对所有的容器都适用,现代C++程序更倾向于使用迭代器而不是下标操作访问容器元素向量vector是C++标准模板库中的内容。vector是一个容器,它能够存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,可以动态改变大小使用向量,需要在程序中添加<

2021-05-17 13:08:27 230

空空如也

空空如也

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

TA关注的人

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