自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 9.16 腾讯音乐 二叉树右移

20% 没有OC,当时没时间了, 中间有一个小地方错了(已发现)struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} };class Solution {public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * *

2021-09-16 21:00:20 759 1

原创 【广告计算】互联网控制舆论的三个方法

来自 b站–北冥乘海生–大数据仁波切1. 媒体1. 腾讯系列 微信 qq 腾讯视频2. 头条系 头条 抖音3. 百度系 爱奇艺 百度搜索2. 舆论例子涉及到政府的言论,机器用一些自然语言处理直接将你的facebook账号给封了也就是一旦触及到巨头的利益或者是后面资本的利益,会毫无忌惮的将你的号给封掉阿里的媒体属性不强,多涉及到TOB 或者电商的业务,对媒体的传播能力控制不强,对消除舆论的力度很有欠缺用自己的手段控制舆论,缺乏对媒体的控制能力,会有不安感,会通过资本去入股或者

2021-03-02 20:15:45 696 2

原创 【算法】二分图的判断 与 最大匹配问题(匈牙利算法)

二分图什么是二分图若无向图 G=(V,E)G=(V,E) 的顶点集 VV 可以分割为两个互不相交的子集,且图中每条边的两个顶点分别属于不同的子集,则称图 GG 为一个二分图。简而言之,就是顶点集V可分割为两个互不相交的子集,并且图中每条边依附的两个顶点都分属于这两个互不相交的子集,两个子集内的顶点不相邻。二分图的一个等价定义是:不含有「含奇数条边的环」的图也就是将图中的节点分到两个集合中,满足:只存在由一个集合中的点指向另一个集合中的点的边。(也就是说两个集合中点不互通)染色法判定二分图我们找

2020-10-06 00:40:46 1674

原创 C++ map和set的常见问题

map和 set 相关的问题为什么map和set的插入删除比其它容器的效率高?对于关联式容器来说,不需要做内存的拷贝和内存的移动,他们的存储方式是以节点的方式存储,只需要保留对父子节点的指针,所以实现插入和删除的时候只需要移动节点的指针。insert的时候迭代器会不会失效?不会失效,map和set的节点是malloc申请出来的,尽管insert了新的节点,内存并没有变,变得只是指针的指向。所以insert的时候迭代器并不会失效。但是对于序列式容器来说来说,当插入一个新的元素,有可能需要扩容,

2020-08-17 14:32:18 865

原创 【算法】四种二分模板

二分模板 md模板1: 找最大值中的最小int main(){int l;int r;while(l < r){ int mid = (l + r)/ 2; if(check()) { r = mid; } else { l = mid + 1; } //最后的l,r是答案 因为 l == r} }模板2:找最小值中的最大int main(){int l;int r;while(l < r){ int mid = (l + r +

2020-07-14 18:28:49 8371 7

原创 leetcode第197场周赛 之 5211概率的最大路径

emm,在这里给大家推荐两个方法,一个是我比赛的时候写的堆优化版本的dijkstra,和求最短路径的spfa算法。一般写题的时候都不是接口型的OJ,而leetcode上的oj是接口型的,所以遇到一些些大大小小的问题,一直耽搁了快一个小时,本来就起晚了,AC完这道题也就刚刚结束。看完排名前面大佬们写的dijkstra用的临界矩阵建图只写了30多行,而我的堆优化版的dijkstra写了70多行,才知道差距,中间有很多不足的地方。我们这里用两种建图的Dijkstra实现这道题。注:其实堆优化的Dijkstr

2020-07-12 14:02:18 355

原创 互联网中的安全性攻击XSS,DDOS,ARP欺骗

互联网中的安全性攻击XSS攻击:缓冲区溢出:DDos 分布式拒绝服务SYN泛洪攻击:XSS攻击:XSS攻击叫做跨站脚本攻击,是一种web应用中的计算机安全的漏洞。这种攻击允许恶意的web用户将代码移植入web用户为其它用户提供的页面当中。概念这样说是有一点笼统,举个现实中的例子,就比如朋友给你发送一个恶意的链接,你只要点击之后就会跳转到它的恶意界面,按照它的指令来,甚至有时候还要重启设备。常见的几种XSS攻击:反射性的XSS攻击反射性的XSS攻击多出现在电子邮件中,或者URL中,攻击者通过一些

2020-07-11 22:37:51 927

原创 Redis学习记录2 Redis五种基本数据结构

Redis学习笔记2 Redis基本数据结构之String Hash五种类型的框架String类型的使用场景:(针对于实体对象)1. 单值缓存set key value //存储值get key // 获取值2. 对象缓存除了可以set和get存储和获取键值对以外 还可以利用 mset以对象的方式存储和获取信息。mset,mget批量的存储与取出1. set user:1 value(json格式数据) //这里就不详细展开了2. mset user:1:name litia

2020-07-06 21:54:51 528

原创 【图论】Dijkstra算法经典题目 之航线

航线–Dijkstra算法经典题目图论除了最小生成树,Kruskal以外,Dijkstra算法也是重点的模块,Dijkstra算法变种题很多,经典的我也是收藏一下,以后方便寻找,hah题目描述(废话,建议不看)“呼!!终于到了,可是接下来要怎么走才能到达楚楚街港港呢?”亮亮在醋溜港直发愁。 突然“啾”的一下,一只银色小船出现在亮亮的面前,上面坐着小精灵丹丹“又见面了,有什么可以帮助你的么?”小精灵向亮亮眨了眨眼睛,微笑着说。 “我想去楚楚街港,但我不知道要怎么走,请问你可以告诉我么?”亮亮按捺着激

2020-07-04 19:32:49 1157

原创 【算法】 有边数限制的最短路(bellman - ford算法)

有边数限制的最短路题目:给定一个n个点m条边的有向图,图中可能存在重边和自环, 边权可能为负数。请你求出从1号点到n号点的最多经过k条边的最短距离,如果无法从1号点走到n号点,输出impossible。注意:图中可能 存在负权回路 。输入格式第一行包含三个整数n,m,k。接下来m行,每行包含三个整数x,y,z,表示存在一条从点x到点y的有向边,边长为z。输出格式输出一个整数,表示从1号点到n号点的最多经过k条边的最短距离。如果不存在满足条件的路径,则输出“impossible”。数据范

2020-06-22 19:03:10 1523

原创 【算法】取硬币(背包问题)

尽管做完蒙德里安的梦想以后我就没有梦想了,但是还是要继续的。这不是又遇到一个题很有意思 ,没有想到的我哭了,就是裸题,我还是太菜了。取硬币题目描述:现在有 n1+n2 种面值的硬币,其中前 n1 种为普通币,可以取任意枚,后 n2 种为纪念币,每种最多只能取 1 枚,每种硬币有一个面值,问能用多少种方法拼出 m 的面值?输入格式第一行包含三个整数 n1,n2,m,分别表示普通币种类数,纪念币种类数和目标面值;第二行 n1 个整数,第 i 种普通币的面值 a[i]。保证 a[i] 为严格升序;第

2020-06-20 21:54:22 644

原创 【算法】和为S的连续正数序列(多解)

这个题很经典,我只会两种做法,然后在网上看了别的大佬的新颖解法(我想不到的0.0),也算作是个学习吧。题目描述:输入一个正数s,打印出所有和为s的连续正数序列(至少含有两个数)。例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以结果打印出3个连续序列1~5、4~6和7~8。样例:输入:15输出:[[1,2,3,4,5],[4,5,6],[7,8]]方法一:暴力DFS(我的笨解法,没有什么值得注意的地方)class Solution {public: void

2020-06-16 18:29:31 288

原创 【算法】Dijkstra算法求最短路径

最近一直在刷题,遇到图的问题就感觉无力回天,所以我就总结一下,我对Dijkstra算法的理解Dijkstra 的整体思路Dijkstra 的整体思路比较清晰即进行n(n为n的个数)次迭代去确定每个点到起点的最小值 最后输出的终点的即为我们要找的最短路的距离所以按照这个思路除了存储图外我们还需要存储两个量dist[n] //用于存储每个点到起点的最短距离st[n] //用于在更新最短距离时 判断当前的点的最短距离是否确定 是否需要更新每次迭代的过程中我们都先找到当前未确定的最短距离的点中距

2020-06-16 16:41:22 3304

原创 【Linux】图解五种IO模型(阻塞,非阻塞,信号驱动,异步,多路转接)

五种IO模型在讲五种IO模型之前,我们先来看一下阻塞,非阻塞,同步和异步的区别:阻塞:发起调用之后,若条件不满足,则一直等待直到条件满足非阻塞:发起调用之后,若条件不满足,则报错返回。区别:发起调用的时候不具备完成条件的情况下是否会立即返回同步:处理流程中,顺序处理,一个完成之后再完成下一个,因为并且所有的功能都由进程自身完成异步:处理流程中个,顺序不定,因为功能都由操作系统完成,完成的顺序不一定。区别:功能是否由进程自己完成,完成的顺序是否是确定的。异步阻塞:功能由别人完成,等着别人完成(

2020-06-09 23:26:15 301

原创 【Linux】多路转接之select、poll、epoll模型

多路转接之select、poll、epoll模型多路转接模型select模型select模型的操作流程select模型的代码操作select模型的优缺点分析:POLL模型poll模型的操作流程:poll模型的代码操作poll模型优缺点分析:epoll模型epoll模型的操作流程:epoll模型的代码操作epoll的监控流程: 异步阻塞操作epoll 模型优缺点分析:多路转接模型与多线程/多进程的不同之处多路转接模型多路转接IO:对大量的描述符进行就绪事件监控–让进程能够仅仅对就绪的描述符执行操作 不仅仅

2020-06-09 22:21:28 282

原创 Linux命令高频指令操作

如何查看linux硬盘使用情况:1. df命令(disk free)df命令以磁盘分区为单位查看文件系统中磁盘的使用情况常用命令:1. df -h 查看详细的,以方便阅读形式查看磁盘情况(比df加上了单位M,G等)总结:已用+可用 不一定等于容量,因为系统会保留一部分留作他用。还有就是比df查看的时候多了单位,让我们查阅起来更加清楚。2. df -i 查看各个分区的inode的使用情况总结: 一般,我们通过df -i的方式查看每个分区的inode节点号的使用情况。2.du

2020-06-06 15:43:05 361

原创 【Linux】多线程 之 信号量

信号量信号量的同步与互斥实现作用:实现线程或进程之间的同步与互斥本质:计数器+等待队列+等待与唤醒的功能接口信号量实现同步:通过自身的计数器进行资源计数,对临界资源访问之前先访问信号量,通过计数判断是否有资源能够访问,若不能访问( 计数<=0 没有资源),则等待,并且计数-1,(如果没有资源了,资源为0,等待并且计数-1,变成-1),当信号量计数器为负值,就说明有多少线程正在等待;若可以访问-计数>0,则计数-1,直接访问;其它线程生产资源促使条件满足后,则判断若计数>0,计数+1

2020-06-03 09:45:27 458

原创 【Linux】多线程 之 生产者与消费者模型

生产者与消费者模型产生原因: 生产者生产的数据过快,消费者处理数据,但是生产者和消费者的速度并不均衡,导致生产的速度或者数据处理的速度根本提不起来。举个栗子:一个线程从网卡上抓取数据流量,一个线程进行流量分析,分析肯定特别慢,如果你从网卡上抓取的数据流量很慢的话,不代表流量产生的就慢,抓的特别慢就说明丢包了,意味着你抓取流量数据的时候抓取的不完整,不完整说明你的数据分析没有任何意义。你只能将数据丢掉,那么就遗失数据。生产者与消费者模型的介绍:生产者与消费者模型:(不管什么模型都是针对于特定场景下的解决

2020-06-03 08:59:17 637

原创 【Linux】线程池以及不同场景下的线程池的设计

线程池线程池:在设计线程池上的存在的问题以及解决:线程池的实现框架:基于IO密集型和CPU密集型的线程池如何设计对于CPU密集型程序的线程池设计:对于IO密集型程序的线程池设计:线程池的实现:线程池:概念:线程的池子,有很多的池子,但是数量不会超过池子的限制。需要用到多执行流进行多任务处理的时候,就从池子中取出一个线程去处理优点有大量的数据处理请求,需要多执行流并发/并行处理。若是一个数据请求的到来伴随着一个线程的创建去处理,则会产生一些风险以及不必要的消耗:线程若不限制数量的创建,在峰值压力

2020-06-03 08:24:21 293

原创 为什么上一个网页卡顿或者上不上去?

最近学习redis的时候发现,redis缓存更新的时候会遇到这种情况。然后又思考了一下之前学过的东西,就简单的三点,写一下吧和数据库相关的原因:电脑首页经常进行定时任务刷新缓存,可能电商网页的大量数据失效时间比较集中,如果失效时间一样,又刚好大量的用户进行访问,会击穿数据库,造成缓存雪崩的现象和DNS解析服务相关的原因:当我们上一个网页,DNS进行域名解析服务,解析ip地址的时候,首先要到浏览器缓存中寻找->到本地的hosts文件中寻找->到路由器缓存中寻找->在到根域名服务

2020-06-01 15:15:20 1052

原创 【Linux】session和cookie的底层原理

session 和 cookie 的底层原理session和cookie的简单介绍cookie 的出现是因为 HTTP 是无状态的一种协议,也就说,服务器记不住你,可能你每刷新一次网页,就要重新输入一次账号密码进行登录。这显然是让人无法接受的,cookie 的作用就好比服务器给你贴个标签,然后你每次向服务器再发请求时,服务器就能够 cookie 认出你。抽象地概括一下:一个 cookie 可以认为是一个「变量」,形如 name=value,存储在浏览器;一个 session 可以理解为一种数据结构,多

2020-05-31 13:38:22 430

原创 Redis数据库学习笔记(一)NoSQL和Redis

NoSQL简介NoSQL(Not relational SQL)有多种解释,其中的一种意思是"非关系SQL",NoSQL数据库没有一个统一的架构,没有同一种标准。两种NoSQL数据库之间的不同,甚至远远超过两种关系型数据库的不同。可以说,各种NoSQL的产品各有所长,成功的NoSQL必然是用于某些场所或应用。比如最常见的Redis.NoSQL和数据库之间的关系?是共存的,完成的工作不一样。数据库的记录的是每一种关系的数据,而且这些数据、关系都记录在磁盘上。而NoSQL是没有关系的概念,没有多表查询,

2020-05-26 22:43:33 223

原创 【MySQL】数据库索引与事务的特性

数据库索引:索引的概念:索引是数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。如果想按特定职员的性查找他或她,则与在表中搜索的所有行相比,索引有助于更快的获取信息。索引的一个主要的目的就是加快检索表中数据的方法,也是尽快的找到符合限制条件的记录ID的辅助数据结构优点:通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。可以大大加快数据的检索速度,这也是创建索引的最主要的原因。可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。在使

2020-05-23 23:00:52 360

原创 【C++】C++11之智能指针

//1.RAII管理资源//2. 像指针一样使用namespace lth{ template <class T> class auto_ptr { public: auto_ptr(T* ptr) :_ptr(ptr) { } ~auto_ptr() { cout << "delete" << " "<< _ptr << endl; delete[] _ptr; } T& op

2020-05-15 23:00:25 317

原创 【Linux】TCP的拥塞控制

TCP的拥塞控制拥塞控制原理TCP拥塞控制的方法TCP拥塞控制算法慢开始拥塞避免算法快重传算法快恢复算法:四种算法的实现举例拥塞控制原理拥塞: 在某段时间,若对网络中资源(带宽、交换节点缓存,处理机)的需求超过了该资源所能提供的可用部分,网络的性能就要变坏,这种现象就称为拥塞。拥塞的危害:若网络中的许多资源同时产生拥塞,网络的性能就明显会变坏,整个网络的吞吐量将下降的严重。出现拥塞的原因:对资源的需求和 大于 可用资源增加资源能解决拥塞吗?不能。网络拥塞是一个非常复杂的问题,很多情况下,不能解

2020-05-13 20:57:41 1248

原创 【Linux】进程与线程的联系与区别

线程与进程:线程是资源调度的基本单位,而进程是操作系统资源分配的基本单位。每一个进程都有自己独立的虚拟地址空间和程序上下文,程序之间的切换会有较大的的开销。而linux下的线程,是轻量化的,因为多个线程共用进程的虚拟自治空间,实现数据的共享。当然每一个线程也都有自己独立的栈空间 等等,线程之间的切换开销小在操作系统中同时可以运行多个进程,而在同一个进程中有多个线程同时执行(通过CPU的调度,...

2020-05-13 00:21:39 264

原创 【Linux】死锁的产生与预防

死锁:死锁的概念:多个线程对锁资源争抢访问,但是因为推进顺序不当,导致相互等待,造成程序无法继续,这就是死锁。死锁的产生原因系统资源不足:系统中所拥有的资源数量不满足多个线程的需要,使得在锁哥线程运行的过程中,因争夺资源而陷入僵局。线程间推进顺序不当死锁产生的四个必要条件:互斥条件 — 同一时间锁只能有一个线程能够获取不可剥夺条件 — 线程A加的锁只有线程A能解释放请求与保持条件 — 线程A拿着A锁去请求B锁,若请求不到,则线程A一直保持A的锁不释放环路等待条

2020-05-12 23:50:08 168

原创 【Linux】输入一个网址按下回车后会发生什么过程

输入一个网址后,按下回车后的过程当你在浏览器输入一个网址,如http://www…baidu.com,按回车之后发生了什么?1.DNS解析DNS解析的过程就是寻找哪台机器上有你需要资源的过程,寻找的过程遵循就近原则。输入一个网址并按回车的时候浏览器会根据输入的URL去查找对应的IP,具体过程如下:(1)首先是查找浏览器缓存,浏览器会保存一段时间内访问过的一些网址的DNS信息,不同浏览器保存的时常不等。(2)如果没有找到对应的记录,这个时候浏览器会尝试调用操作系统缓存来继续查找这个网址的对应DNS

2020-05-12 23:06:25 534

原创 【Linux】进程的地址空间

进程的虚拟地址空间进程虚拟地址空间的含义:进程的虚拟地址空间的作用:进程之间为什么能通过虚拟地址空间空间实现数据独有?三种内存管理方式再讲进程的虚拟地址空间之前,我们先来了解一下程序的地址空间是什么?程序的地址空间:这是程序地址空间。而程序是一个个死的代码,所以叫做程序地址空间不合适。程序运行起来之后,才会占用内存。所以我们称为进程地址空间。那么我们思考一下,进程地址空间每一个进程都有一...

2020-05-07 21:57:19 1692

原创 【项目】TCMalloc

高并发内存中间件(TCMALLOC)高并发内存中间件是一个在多线程并发条件下进行内存申请的程序。是谷歌公司TCMAlloc的学习致敬,再简化版本模拟实现。高并发内存中间件这个项目分为三个层次,这三个层次分别从上到下依次是ThreadCache、CentralCache、和PageCache。依靠三个层次的均衡调度来实现多线程下的内存申请与释放。该项目解决的问题:解决内存碎片的问题(外碎...

2020-05-07 20:30:37 562

原创 【C++】vector类的模拟实现

#include <iostream>#include <cassert>using namespace std;template <class T>class Vector{ public: typedef T* iterator; Vector() :_start(nullptr) , _finish(nullptr) , ...

2020-05-05 17:48:34 433

原创 【C++】string类的模拟实现

#include <iostream>#include <cassert>using namespace std;class String{public: typedef const char* const_Iterator; typedef char* Iterator; Iterator begin() { return _str; } I...

2020-05-05 15:23:42 203

原创 【C++】vector迭代器失效问题

vector迭代器失效问题迭代器失效是什么?迭代器失效,是不能再去拿迭代器去访问vector中的元素,此时的迭代器指向的这块空间已经被释放了,也就是说此时的迭代器已经是野指针了。insert可能会导致迭代器失效当vector数组开辟一段的空间之后,调用insert函数,向数组中插入一个值后,有可能会导致原来的空间不足,这时候,vector要进行深拷贝,就会开辟一个更大的空间,将原来空间上的...

2020-05-04 23:38:58 304

原创 【算法】求子集(多解)

求子集在所有子集中,生成各个字子集,例如 [1,2,3] 生成的子集中,[[],[1],[2],[3],[1,2],[1,3],[2,3],[1,2,3]],就是是否选[1],是否选[2],是否选[3]的问题。如果只使用循环的话,假如第一次选择[1],循环继续往下走,没有办法回退到不选[1]的状态。也就是说,循环过程难以直接模拟是否选某一元素的过程。 那我们来想一想, 如果只是生成[1],[1...

2020-05-03 11:15:03 3892 2

原创 【排序】归并排序

归并排序算法思想归并排序的思想就是利用分治算法。分治算法: 将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解后进行合并,就可以得到原问题的解。归并算法的实现步骤:分解,将要解决的问题划分为若干个规模较小的同类问题求解,当子问题划分得到足够小时,用较简单的方法解决合并,按原问题的要求,将子问题的解逐层合并构成原问题的解。归并排序...

2020-05-02 17:39:22 180

原创 【算法】判断一颗树是否为完全二叉树

判断一颗树是否为完全二叉树算法思想:完全二叉树规则:遍历到任何一个节点,有右孩子没有左孩子直接返回false不违反1的情况下,当前节点左右两个孩子不全,从当前节点开始所有的节点均为叶子节点。我们定义一个队列层序遍历二叉树,定义一个bool类型的变量,表示是否到达一个节点,这个节点的左右孩子不全,那么以后的节点就全为叶子节点。若不满足,则不是完全二叉树。也就类似于下图:代码实现:...

2020-04-30 23:55:23 2003

原创 【算法】排成一条线的纸牌博弈问题(从递归到动态规划)

题目描述:有一个整型数组A,代表数值不同的纸牌排成一条线。玩家a和玩家b依次拿走每张纸牌,规定玩家a先拿,玩家B后拿,但是每个玩家每次只能拿走最左或最右的纸 牌,玩家a和玩家b都绝顶聪明,他们总会采用最优策略。请返回最后获胜者的分数。给定纸牌序列A及序列的大小n,请返回最后分数较高者得分数(相同则返回任意一个分数)。保证A中的元素均小于等于1000。且A的大小小于等于300。测试样例:...

2020-04-30 22:50:00 1719

原创 【算法】求累加和小于等于aim的最长的子数组(O(N)

题目描述:给定一个数组arr,值可正,可负,可0;一个整数aim,求累加和小于等于aim的最长子数组,要求时间复杂度O(N)算法思想:数组arr: 【7,5 ,5 ,-3, -1】刚开始的的时候我们要生成两个数组,min_sum_index和min_sum数组。min_sum[i]的含义是:以i开始向后累加能累加出最小的累加和min_sum_index[i]的含义是:取得最小累加和的右...

2020-04-30 19:52:14 475

原创 【算法】求数组中异或和为0的子数组最多有多少

求数组中子数组异或和为0的子数组最多有多少问题描述:假设一个数组 {3,2,1,0,1,2,3,0},求异或和为0的子数组最多有多少,也就是最多可以划分多少个?答案:4解析:数组 {3 2 1 0 1 2 3 0} 。可以划分为 {3,2,1} {0} {1,2,3} {0},四个子数组异或和都为0。也可以划分为 {3},{2},{1},{0},{1},{2},{3},{0},这样子,子...

2020-04-29 16:59:44 1785

原创 【C++】继承

C++中的继承1.继承的概念继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称为派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。之前我们接触的复用都是函数复用,继承是类设计层次的复用。2.继承定义定义格式:下面我们看到Person是父类,也称作基类。Stud...

2020-04-27 16:53:57 287

空空如也

空空如也

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

TA关注的人

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