自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 PAT甲级题库 1004 Counting Leaves (30 分)

题目1004 Counting Leaves (30 分)A family hierarchy is usually presented by a pedigree tree. Your job is to count those family members who have no child.Input Specification:Each input file contains one test case. Each case starts with a line containing 0&l

2022-01-23 17:37:14 227

原创 PAT甲级题库 1003 Emergency (25 分)

1003 Emergency (25 分)As an emergency rescue team leader of a city, you are given a special map of your country. The map shows several scattered cities connected by some roads. Amount of rescue teams in each city and the length of each road between any pai

2022-01-23 15:54:31 412

原创 C++新特性(一)nullptr,constexptr,迭代器与类型推导auto,委托构造与继承构造,虚函数override以及类的final

1,nullptr字面意思可以看到,nullptr指的是空指针的意思,在以前任意类型的指针可以直接用NULL赋值:char* p=NULL。然而实际上NULL在编译器内部是一个宏定义#define NULL 0。这就可能在某些情况下产生一些问题。例如:假设有两个函数重载void foo(int a){};///1void foo(char*a){};///2在main函数中调用foo(NULL);,显然该调用会去调用2函数,这有时候和我们的编写意图相违背。因此就有了nullptr关键字,就好像是

2022-01-22 21:46:50 800

原创 Mysql数据库基本操作(十一)mysql的存储引擎

mysql存储引擎这块没什么涉及的操作,只有一些需要了解的概念,了解存储引擎对于同学理解整个数据库管理系统是很有必要的。基本概念1,数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。2,不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。MySQL的核心就是存储引擎。3,用户可以根据不同的需求为数据表选择不同的存储引擎4,可以使用SHOW ENGINES命令可以查看Mysql的所有

2022-01-21 22:08:57 286

原创 Mysql数据库基本操作(十)索引

索引一张表的索引就好像一本书的目录,书的目录就是将每一章节的标题按照树形结构组织起来,方便我们按照目录查到书的某一章节的内容;而数据表的索引就是将数据表中每个记录的某一列或者多列按照一定的方式组织起来,方便我们可以直接按照索引查到对应的记录。这里说的组织方式一般是指哈希散列存储组织或者B+树组织(一般是B+树)。一般数据表比较大的时候就需要创建索引提高查找速度。1,单列索引1.1 普通索引MySQL中基本索引类型,没有什么限制,允许在定义索引的列中插入重复值和空值,纯粹为了查询数据更快一点。1,创

2022-01-21 20:58:27 1455

原创 Mysql数据库基本操作(九)视图

1,基本概念视图(view)是一个虚拟表,非真实存在,其本质是根据sQL语句获取动态的数据集,并为其命名,用户使用时只需使用视图名称即可获取结果集,并可以将其当作表来使用。所以我们对于数据库的一些select操作得出的一个查询结果就是一个视图。数据库中只存放了视图的定义,而并没有存放视图中的数据。这些数据存放在原来的表中。使用视图查询数据时,数据库系统会从原来的表中取出对应的数据。因此,视图中的数据是依赖于原来的表中的数据的。一旦表中的数据发生改变,显示在视图中的数据也会发生改变。2,作用1)简化

2022-01-21 19:27:21 1122

原创 Mysql数据库基本操作(八-2)窗口函数

首先介绍所有窗口函数的用法,然后分块来分别介绍各个窗口函数的作用。用法:window_function ( expr ) OVER(PARTITION BYORDER BY ...frame_clause)1,序号函数序号函数有三个,分别为ROW_NUMBER(),RANK(),DENSE_RANK(),接下来解释其用法与作用:2,分布函数3,前后函数4,头尾函数5,其他函数...

2022-01-21 17:44:18 467

原创 Mysql数据库基本操作(八-1)mysql函数

在MySQL中,为了提高代码重用性和隐藏实现细节,MySQL提供了很多函数。聚合函数聚合函数count,sum,min,max,avg前面已经介绍过Mysql数据库基本操作(四)DQL-基本查询,接下来再介绍一个新的聚合函数group_concat(),group_concat()函数首先根据group by指定的列进行分组,并且用分隔符分隔,将同一个分组中的值连接起来,返回一个字符串结果。对于以下表:用法:group_concat([distinct]字段名[order by排序字段asc/d

2022-01-20 18:52:29 1457

原创 C++连接mysql数据库,并且运行一个简单的例子

一,在vs上面配置环境在vs上配置环境首先要知道自己的mysql数据库安装在什么地方,默认是安装在C:\Program Files\MySQL\MySQL Server 8.0目录下的。该目录下的文件夹页面是这样的:清楚以后开始在vs中配置环境。1,如图:2,如图:3,4,5,根据mysql的安装位置找到include目录与lib目录,我的include目录:C:\Program Files\MySQL\MySQL Server 8.0\include我的lib目录:C:\Program

2022-01-17 17:26:07 1019

原创 Mysql数据库基本操作(七)多表查询-子查询,表自身关联查询

多表查询还有前面的两块内容——内连接查询,外连接查询,希望看到这章博客的朋友先去看看我的"Mysql数据库"专栏中Mysql数据库基本操作(六)多表查询-内连接,外连接这一章博客,看完再来看这一章的内容,相信即使你已经理解内连接,外连接查询,看博客的时候也会有新的收获。除此之外,接下类要将的子查询,表自身关联查询所用到的数据也在这篇博客中。Mysql数据库基本操作(六)多表查询-内连接,外连接子查询表自身关联查询...

2022-01-16 00:42:24 4277

原创 Mysql数据库基本操作(六)多表查询-内连接查询,外连接查询

数据准备use mydb3 ;--创建部门表create table if not exists dept3 (deptno varchar (20) primary key , --部门号name varchar (20 )--部门名字);--创建员工表create table if not exists emp3 (eid varchar (20) primary key , --员工编号ename varchar(20), --员工名字age int, --员工年龄dept_i

2022-01-15 21:20:52 4546 2

原创 Mysql数据库基本操作(五)多表关系与外键

一,多表关系多表关系有三种,一对一,一对多,多对多1,一对一关系:A表与B表通过一个字段对应,例如学生表和身份证表,一个学生只有一个身份证,一个身份证也只代表了一个学生。在实际开发环境中没必要使用一对一的关系,遇到一对一的关系不如直接将两个表一对一合并。2,一对多关系:A表中的一个字段可以对应B表中的多个字段,例如部门表和员工表,一个部门可以对应多个员工,但是一员工只对应一个部门,这种多表关系很常见。3,多对多关系:A表中的多个字段可以与B表的多个字段对应,例如学生表和选课表,一个学生可以选多门

2022-01-14 17:34:44 2545

原创 C++易错知识点(十三)在成员函数或者构造函数内部调用虚函数

我们已经知道,虚函数的间接调用是指通过指针调用一个虚函数会查对应对象的虚函数表完成函数调用的过程,而使用指针调用一个类的普通成员函数不会有间接调用即多态出现。那么使用指针调用的这个普通成员函数类内部有虚函数的调用会怎样呢?如果是构造函数内部呢?1,当普通成员函数内部有虚函数调用时直接编程查看结果看看是否有虚函数的多态。#include<iostream>using namespace std;class A {public: virtual void test() { cout &

2022-01-14 15:47:40 591

原创 PAT甲级题库(2)1002 A+B for Polynomials (25 分)

题目1002 A+B for Polynomials (25 分)This time, you are supposed to find A+B where A and B are two polynomials.Input Specification:Each input file contains one test case. Each case occupies 2 lines, and each line contains the information of a polynomial:K

2022-01-14 15:46:07 399

原创 PAT甲级题库 1001 A+B Format (20 分)

Calculate a+b and output the sum in standard format – that is, the digits must be separated into groups of three by commas (unless there are less than four digits).Input Specification:Each input file contains one test case. Each case contains a pair of i

2022-01-14 15:10:18 435

原创 C++易错知识点(十二)纯虚函数与抽象类,多重继承,菱形继承与虚继承

1,纯虚函数与抽象类纯虚函数是指一种特殊的虚函数,在许多情况下,在基类中不能对虚函数给出有意义的实现,而把它声明为纯虚函数,它的实现留给该基类的派生类去做。这就是纯虚函数的作用。存在纯虚函数的类就是抽象类。在类里纯虚函数的声明:virtual void test() = 0;2,多重继承一般的子类都有唯一一个父类,多重继承是指一个子类可以继承多个父类。例如:如下所示:son作为子类,继承了父类Parent1与Parent2。class Parent1{private: int Paren

2022-01-13 15:40:11 277

原创 C++易错知识点(十一)虚析构函数

首先来看这样一个场景,观察构造析构的调用析构顺序。#include<iostream>using namespace std;class Parent{private: int a;public: Parent() { cout<<"Parent()"<<endl; } ~Parent() { cout<<"~Parent()"<<endl; }};class son :public Parent {private: int

2022-01-13 11:29:03 313

原创 C++易错知识点笔记(十)友元

一,友元1,分类1)友元全局函数2)友元类成员函数3)友元类2,作用可以访问类的私有成员3,缺点破坏了类的封装性和类的隐藏性4,用途不推荐使用,在某些方面,如运算符重载和某些设计模式时可酌情使用。5,用一个例子演示三类友元class B {public: void bfoo();};class C {public: void cfoo1(); void cfoo2();};class A {private: int privateData;public: f

2022-01-13 10:59:44 314

原创 C++易错知识点笔记(九)学了静态成员函数,现在尝试写一个单例模式

单例模式是指一个类只能创建一个类对象,本文从第一种单例模式的写法开始介绍,后一种单例模式均是对前一种单例模式可能出现的问题的改进,写法大同小异,读者可跟随文章一起分析。第一种单例模式#include<iostream>using namespace std;class Clog {private: static Clog* ptr; Clog() = default;public: //唯一的创建类的接口 static Clog* createObject(){ if(p

2022-01-12 17:04:59 179

原创 C++易错知识点笔记(八)常成员函数,常成员变量及初始化列表,静态成员变量,静态成员函数

1,常成员函数常成员函数意味着该函数内部不能修改类成员变量,而一个类当中一般都有getdata这样的函数暴露数据成员的接口,所以一般来说像get之类返回类的数据成员的函数,它的内部不会涉及到类成员变量的修改,这时候建议将这样的函数声明为常成员函数。...

2022-01-11 19:41:28 624

原创 C++易错知识点(七)一步一步理解虚函数与多态的概念和本质

先编写一个代码说明一下多态现象:#include<iostream>using namespace std;class CPerson {public: int mid; virtual void speak() { cout << "说人话" << endl; } CPerson(){ mid = 0; cout << "父类构造" << endl; };};class CChinese:public CPe

2022-01-11 16:16:28 288

原创 Mysql数据库基本操作(四)DQL-基本查询

假设有这样创建的一张表create table product (pid int primary key auto_increment, --商品编号pname varchar (20)not null , --商品名字price double, --商品价格category_id varchar (20) --商品所属分类) ;即这张表的名字是product,表的字段有商品编号,商品名字,商品价格,商品所属分类;接下来的所有查询以这张表举例子1,简单查询1)查询所有的商品select *f

2022-01-08 21:43:24 1858

原创 Mysql数据库基本操作(三)Mysql约束

表在设计的时候加入约束的目的就是为了保证表中的记录完整性和有效性,比如用户表有些列的值((手机号)不能为空,有些列的值((身份证号)不能重复。1,主键约束(primary key) PK主键约束是一个列或者多个列的组合,分别成为单列主键和多列联合主键,其值能唯一地标识表中的每一行,方便在数据表中尽快的找到某一行,关键字primary key,一个表中只能有一个主键。注意:多列联合主键也是一个主键——在单列主键中,每一行记录的主键列都不能相同,这一主键唯一标识一行;在多列联合主键中,每一行记录的联合主键

2022-01-08 17:59:31 1027

原创 Git版本控制工具学习(二)#Git的分支结构,Git的远程仓库管理

1,Git的分支结构几乎所有的版本控制系统都以某种形式支持分支。使用分支意味着你可以把你的工作从开发主线上分离开来进行重大的Bug修改、开发新的功能,以免影响开发主线。1)查看本地分支git branch2)创建本地分支git branch 分支名3)切换分支git checkout 分支名4)创建并切换分支git checkout -b 分支名5)合并分支git merge 分支名6)删除分支git merge -d 分支名(删除分支时,需要做各种检查),git branch -D 分支名(

2022-01-07 18:02:56 532

原创 Linux学习(三)llinux用户管理,文件管理实用指令汇总

1,开机与重启1)shutdown -h now立刻进行关机2)shutdown -h 55分钟后关机3)shutdown -r now现在重启计算机4)halt关机作用和上面一样5)reboot现在重启计算机6)sync把内存的数据同步到磁盘,类似于windows中的ctrl+s,重要...

2022-01-07 01:53:11 603

原创 Linux学习(二)vim编辑器学习

1,vim三个模式vim有三个模式,分别是正常模式,插入模式,命令模式,三者之间切换图如下可以看到,使用vim打开文件一开始是一般模式,将一般模式理解为一个中介状态,一般模式和编辑模式之间可以相互转换;一般模式也可以和命令模式相互转换;而命令模式和编辑模式不可以相互转换。注意这一点再根据图片记忆状态之间怎样转换的操作。2,vim快捷键1)(一般模式下)拷贝当前行 yy,拷贝当前行向下的5行 5yy,黏贴 p2)(一般模式下)删除当前行dd ,删除当前行向下的5行 5dd3)(在命令行下

2022-01-07 00:53:38 184

原创 Linux学习(一)虚拟机安装linux资源,linux目录结构,购买阿里云服务器远程登陆linux,下载安装并使用Xshell与Xftp

1,虚拟机安装linux下载安装VMware虚拟机与一个linux系统镜像文件,linux系统可以选择ubuntu或者centos。虚拟机与Linux镜像文件网盘链接,提取码:6666,具体的安装步骤讲解可通过csdn查找。2,linux目录结构1)linux 的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录。2)深刻理解 linux树状文件目录是非常重要的,记住一句经典的话:在Linux世界里,一切皆文件2.1 具体的文件目录1)/bin

2022-01-06 22:10:03 643

原创 Git版本控制工具学习笔记(一)#Git的安装与入门使用

1,安装Git版本控制工具Git安装软件提取码:6666;Git的安装非常简单,只需一直点下一步即可。安装好了以后鼠标在电脑桌面右键,可以看到以下两个菜单则安装成功。2,使用Git之前的准备(1)配置用户信息打开Git Bash,配置用户信息。注:Git Bash界面的操作和操作linux界面很多命令都是类似的。git config --global user.name "yourname"git config --global user.email "youremail@qq.com"

2022-01-05 22:09:55 200

原创 Mysql数据库基本操作(二)数据库基本操作DML(增删改)

1,数据的插入格式1:insert into 表(列名1,列名2,列名3...) values (值1,值2,值3...)格式2:insert into 表 values (值1,值2,值3...);# 1,数据的插入# 格式1:insert into 表(列名1,列名2,列名3...) values (值1,值2,值3...)insert into student(sid,name,gender,age,birth,address,score) values(1001,'

2022-01-04 16:54:03 496

原创 Mysql数据库基本操作(一)数据库操作,表操作

一,数据库操作#1,查看数据库show databases;#2,创建数据库create DATABASE IF NOT EXISTS MYDB1;#3,选择数据库USE MYDB1;#4,删除数据库DROP DATABASE MYDB1;DROP DATABASE IF EXISTS MYDB1;#5,修改数据库编码ALTER DATABASE MYDB1 CHARACTER SET UTF8;二,表操作#1,使用mydb1数据库USE MYDB1;#2,创建一个表CR

2022-01-04 13:46:33 399

原创 C++易错知识点笔记(六)写一个父类,子类,友类;帮助理解记忆继承中涉及的问题

这里写一个CPerson为父类,Student类为子类,Friend_Mate为Student的友类,详情见代码,读者可以将代码复制到vs当中试验继承中涉及到的各种知识点,在阅读下面代码的过程中记得关注:1, 注意继承的基本语法2, 注意继承的可见性我们认为public权限>protected权限>private权限。父类的私有成员被子类继承以后不论哪种继承方式都不可见,父类的其他成员被子类继承以后子类的权限变为min权限{该数据成员在父类中的权限,继承方式} 。例如子类保护继承了父类的

2022-01-04 01:39:45 538

原创 C++易错知识点笔记(五)写一个类的例子记忆类的正确书写,成员权限,构造函数,析构函数,深拷贝与浅拷贝

这里写一个钟表类,读者可以通过复制整个代码到vs中运行试验,从这个例子中记忆1,关注类的简单语法2,关注类的成员变量一般私有3,关注类的构造函数的一般写法与调用#include<iostream>using namespace std;class CClock{private://private表示只能类内访问 int m_Hour; int m_Minute; int m_Second;public://表示类内与类外都都可访问,还有protect权限与继承有关,在后面

2022-01-02 17:13:35 347

原创 C++易错知识点笔记(四)名字空间

作用域1,全局作用域, 名字空间域2,局部作用域,块作用域3,类域数据隐藏在不同的作用域可以定义多个相同名称的变量,在访问时只访问本作用域的变量,屏蔽更大作用域的变量。名字空间1,一种作用域的划分,通常用于区分项目中的模块与组件,可以在命名空间中定义变量与函数。(1)定义namespace U_fun1{ int age=10;};//命名空间U_fun1中有一个变量agenamespace U_fun2{ int age=11;};//命名空间U_fun2中也有

2022-01-02 13:00:38 361

原创 C++易错知识点笔记(三)引用

什么是引用在函数进行参数传递的时候,函数内部的变量为局部变量,作用域为该函数本身,除了函数的return值,函数里的其他变量的值都不能出这个函数。例如:int GetAdd(int a,int b){ a=a+1; b=b+1; return a+b;}当使用GetAdd(x,y)语句调用该函数后,智慧返回(x+1)+(y+1)的值,而x与y本身的值在函数调用过后+1;事实上函数声明中的a,b只是形式参数,在函数调用过后a,b会在函数体内部开辟内存,用x,y初始化,之后a,

2022-01-01 19:05:12 308

原创 C++易错知识点笔记(二)默认参数,内联函数

默认参数1,什么是默认参数C++的参数可以在参数列表中直接赋值作为默认参数,且只能在后面几位参数赋值,即只有后面几位参数可以作为默认参数。2,默认参数的使用默认参数可以写在声明或者定义任意一处,一般写在声明处,因为声明处可以暴露给其他人,而实现部分一般是程序员自己知道的。例如:声明:int M_ParaMetre(int n1, int n2, int n3 = 1, int n4 = 2);实现:int `M_ParaMetre(int n1, int n2, int n3,int n4

2022-01-01 17:23:53 195

原创 C++易错知识点笔记(一)const关键字

一,const常量const的意思是常量const float PI=3.14;PI=3;//会报错,PI不可修改注意1,常量定义以后不能再继续赋值,所以在定义时最好顺便初始化。2,常量不能赋值的确切意思是不能在编译过程中赋值,而不是说在运行过程中不能赋值。在运行过程中如果通过操作指针,同样可以对该变量赋值,但一般用不上这种操作,如下:通过该例子再体会一下指针直接修改内存的作用。float* p=(float*)&PI;float input;cin>>input;

2022-01-01 15:28:21 741

原创 开启你的leetcode刷题之旅之前必学(C++)——stl基本模板类的使用,Vectors,Lists,Stack,Queues

stl模板库学习强烈推荐在学习stl的过程中,推荐一个C++函数查找手册,接下来的过程主要结合该手册讲解stl的用法。C++语言参考_百度网盘提取码:6666,学习STL之前需要熟悉基本的C++语法与函数模板的概念Vectors容器Vectors直译过来就是向量的意思,可以将他认为是一个可以自动改变数组长度的数组,其底层实现同样是用顺序表(数组)实现的,访问Vector中的任意元素或从末尾添加元素都可以在常量级时间复杂度内完成,而查找特定值的元素所处的位置或是在Vector中插入元素则是线性时间复杂

2021-12-31 21:38:15 575 1

空空如也

空空如也

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

TA关注的人

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