自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 二叉树的递归与非递归遍历

二叉树的递归与非递归遍历前序遍历二叉树递归遍历非递归遍历中序遍历二叉树递归遍历非递归遍历后序遍历二叉树递归遍历非递归遍历将二叉树遍历的结果保存到vector中返回。递归遍历代码简短,也相对容易理解,此不赘述。咱们重点来看一下非递归遍历。前序遍历二叉树递归遍历void preORecursive(TreeNode* pRoot, vector<int>& vec){...

2019-09-09 17:54:58 497

原创 内联函数和宏定义的区别

内联函数和宏定义的区别内联函数定义用法宏定义定义用法内联函数和宏定义的区别以及使用场景内联函数内联函数优点内联函数缺点宏定义宏定义优点宏定义缺点使用场景补充:C++中函数调用机制内联函数定义某度百科中对内联函数是这样定义的:内联函数(有时称作在线函数或编译时期展开函数)是一种编程语言结构,用来建议编译器对一些特殊函数进行内联扩展(有时称作在线扩展)。由其定义我们可以看出,内联函数其本质是一...

2019-09-05 11:42:01 409

原创 同一进程中线程的共享资源以及独占资源

线程之间的共享资源以及独占资源共享资源独占资源共享资源1、进程申请的堆内存2、进程打开的文件描述符3、进程的全局数据(可用于线程之间通信)4、进程ID、进程组ID5、进程目录6、信号处理器独占资源1、线程ID同一进程中每个线程拥有唯一的线程ID。2、寄存器组的值由于线程间是并发运行的,每个线程有自己不同的运行线索,当从一个线 程切换到另一个线程上 时,必须将原有的线程的寄存...

2019-09-02 09:54:55 5503

原创 Linux下的I/O模型

Linux下的I/O模型1、Linux下的I/O模型2、多路复用模型1、Linux下的I/O模型Linux下5种IO模型的小结2、多路复用模型select、poll、epoll之间的区别

2019-08-30 16:30:36 128

原创 C++面试常见问题(五)

C++面试常见问题(五)1、静态链接和动态链接的区别2、C++中类对象的内存布局1、静态链接和动态链接的区别静态链接:使用静态库进行链接。静态库(.a 、.lib)。动态链接:使用动态库进行链接。动态库(.so 、.dll )。具体的区别下面这篇博客讲得比较详细。大家可以移步至:C++静态库与动态库2、C++中类对象的内存布局空类、单一继承的空类、多重继承的空类所占空间大小为...

2019-08-30 14:41:18 401

原创 数据库常见问题

数据库常见问题数据库索引数据库索引聚簇索引与非聚簇索引组合索引

2019-08-26 21:15:58 117

原创 2019深信服一面(凉经)

2019深信服一面1、如何判断一个进程崩溃了?2、什么情况下会引起程序崩溃?3、内存溢出会造成什么问题?4、标准I/O和系统I/O的区别?什么情况下使用标准I/O,什么情况下使用系统I/O?5、使用fopen()打开文件,没有使用fclose()打开文件会发生什么?fopen()返回的是什么类型的指针?6、统计一篇文章所有单词出现的次数,找出出现次数最多的10个单词。1、如何判断一个进程崩溃了?...

2019-08-26 15:46:08 425

原创 2019腾讯三面面经(C++软开)

2019腾讯三面面经1、项目(超级详细)2、有过团队合作的经历吗?团队出现冲突时怎么解决的?3、说一下你自己的性格4、utf-8和utf-16的区别?5、常用的图片格式以及区别?6、HASH函数7、UDP如何实现可靠传输?8、哪个语句会有内存泄漏?如何修改?9、黑帽子的个数。1、项目(超级详细)2、有过团队合作的经历吗?团队出现冲突时怎么解决的?3、说一下你自己的性格4、utf-8和utf...

2019-08-25 12:45:40 1232

原创 2019腾讯二面面经(C++软开)

2019腾讯二面面经1、手撕代码:大整数乘法2、虚函数表3、你对面向对象的理解4、了解函数式编程吗?5、你熟悉的设计模式6、浏览器输入网址之后到网页显示的过程7、端口号的作用8、在班级中的编程水平?9、说说你自己的优缺点10、对计算机前沿技术的了解?11、对计算机领域那方面比较喜欢,想去深入?12、给你一个月时间来学习安卓开发,你将如何安排?(我是C++面试移动客户端)1、手撕代码:大整数乘法...

2019-08-25 12:25:49 438

原创 C++面试常见问题(四)

C++面试常见问题(五)1、C++ string和其他数据类型之间的转换2、string的构造函数、拷贝构造函数、=运算符、析构函数1、C++ string和其他数据类型之间的转换其他类型转换成stringstring to_string(TYPE value);TYPE 可以是int、double、float、long等类型。但是要注意:float和double类型会在小数点后不够6...

2019-08-19 16:21:44 233

原创 洗牌算法

洗牌算法和随机数生成算法Fisher-Yates Shuffle算法Knuth-Durstenfeld Shuffle 算法随机数生成算法Fisher-Yates Shuffle算法基本思想就是从原始数组中随机取一个之前没取过的数字到新的数组中,具体如下:1. 初始化原始数组和新数组,原始数组长度为n(已知);2. 从还没处理的数组(假如还剩k个)中,随机产生一个[0, k)之间的数字p...

2019-08-17 19:48:02 334

原创 2019腾讯一面面经(C++软开)

2019腾讯一面面经1、线程池2、栈溢出3、DNS服务器的工作原理4、快排5、洗牌算法6、C++内存管理7、野指针8、网站访问,输入域名之后的流程2019年8月16日C++开发岗位一面面经。1、线程池2、栈溢出3、DNS服务器的工作原理4、快排5、洗牌算法6、C++内存管理7、野指针8、网站访问,输入域名之后的流程...

2019-08-16 17:36:54 665

原创 C/C++面试常见问题(三)

c/c++面试常见问题(三)C/C++面试常见问题归纳(三)const关键字const_cast关键字volatile关键字C/C++面试常见问题归纳(三)const关键字volatile 关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的...

2019-07-28 14:23:40 1455

原创 设计模式——抽象工厂模式

抽象工厂模式抽象工厂模式(Abstract Factory)定义简介实现要点总结抽象工厂模式(Abstract Factory)定义抽象工厂模式是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。...

2019-07-27 18:25:43 96

原创 设计模式——代理模式

代理模式代理模式(Proxy Pattern)定义简介实现要点总结代理模式(Proxy Pattern)定义在代理模式中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。简介意图: 为其他对象提供一种代理以控制对这个对象的访问。主要解决: 在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面...

2019-07-27 17:06:23 83

原创 设计模式——工厂模式

工厂模式工厂模式(Factory Pattern)定义简介实现要点总结工厂模式(Factory Pattern)定义工厂模式是面向对象中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。简介意图: 定义一个创建对象的接口,让其子类自己决定实例化...

2019-07-27 16:10:17 110

原创 设计模式——单例模式

单例模式单例模式(Singleton)定义应用场景实现方式要点总结单例模式(Singleton)定义保证一个类仅有一个实例,并提供一个该实例的全局访问点。应用场景在软件系统中,经常有这样一些特殊的类,必须保证它们在系统中只存在一个实例,才能确保它们的逻辑正确性、以及良好的效率。数据库链接、Socket创建链接实现方式class Singleton{private: ...

2019-07-27 14:56:39 110

原创 设计模式——简介

设计模式简介设计模式面向对象设计原则模式分类创建型单例模式抽象工厂模式工厂模式建造者模式原型模式结构型适配器模式桥接模式装饰模式组合模式外观模式享元模式代理模式行为型模板方法模式命令模式迭代器模式观察者模式中介模式备忘录模式解释器模式状态模式策略模式职责链模式访问者模式设计模式面向对象的设计模式是“好的面向对象设计”, 是指可以满足“应对变化, 提高复用”的设计模式。在稳定与变化之间找到分隔...

2019-07-27 12:06:56 189

原创 计算机网络——http协议和https协议

http协议和https协议http协议简介HTTP事务处理过程HTTP的特点HTTP的方法https协议简介HTTPS协议的数据传输过程浏览器中输入:“www.xxx.com” 之后都发生了什么?http协议简介HTTP协议是一种基于TCP的应用层协议,它采用C/S模式,为Web客户与服务器之间通信提供一种公共的方法。使用的TCP端口号为80。HTTP事务处理过程(1)客户与服务器之间...

2019-07-26 15:28:03 440

原创 计算机网络——OSI和TCP/IP模型

OSI和TCP/IP模型OSI 七层模型OSIOSI七层模型的划分各层功能和定义通信特点:对等通信TCP/IP五层协议TCP/IP五层协议模型工作在每层的设备:每层主要的协议OSI 七层模型OSIOSI(Open System Interconnect),即开放式系统互联。 一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互连模型。OSI七层模型的划分各层功...

2019-07-26 10:59:33 191

原创 计算机网络——TCP/UDP

计算机网络——TCP/UDPTCPTCP报文格式三次握手四次挥手TCP的特点TCP使用了哪些措施保证其可靠性?UDPUDP报文格式UDP的特点TCP(Transmission Control Protocal)传输控制协议。TCP报文格式源端口: 本地通信端口,源端口和IP地址的作用是标识报文的返回地址。目的端口: 远程通信端口,指明接收方计算机上的应用程序接口。序列号: 序号是本报...

2019-07-25 21:29:17 223

原创 操作系统——内存管理

操作系统常见问题汇总(三)离散分配内存管理分页存储管理方式分段存储管理方式段页式存储管理方式分页和分段的区别虚拟存储器虚拟存储器的定义和特征页面置换算法离散分配内存管理分页存储管理方式该方式中,操作系统将用户程序的地址空间分为若干个固定大小的区域,称为“页”或“页面”。Linux系统的页面大小为4KB。相应地,也将内存空间分为若干个物理块或页框,页和块的大小相同。这样可以将用户程序的任意页放...

2019-07-22 13:16:55 639

原创 操作系统——进程调度算法与死锁

操作系统常见问题汇总(二)进程调度算法先来先服务算法短作业(进程)优先调度算法高优先权调度算法高响应比优先调度算法时间片轮转算法多级队列调度算法死锁定义死锁产生的原因死锁产生的必要条件处理死锁的方法银行家算法进程调度算法先来先服务算法每次调度都是从就绪队列中选择一个最先进入该队列的进程,为之分配处理机。短作业(进程)优先调度算法以作业或进程执行时间的长短来计算优先级,所需时间越少,优先级...

2019-07-21 20:12:18 836

原创 操作系统——进程与线程

操作系统常见问题汇总(一)进程进程的概念进程的特征进程的基本状态及其转换进程同步进程间通信方式线程线程和进程的比较进程进程的概念传统操作系统中进程被定义为:“进程是进程实体的运行过程,是系统进行资源分配和调度的基本单位。”所谓的进程实体是由:程序段、相关的数据段以及PCB(进程控制块)构成。系统使用PCB来描述进程的基本情况和活动过程,进而控制和管理进程。每个进程都有自己的地址空间,即...

2019-07-21 15:33:33 343

原创 C/C++面试常见问题(二)

c/c++面试常见问题二C/C++面试常见问题归纳(二)1、智能指针2、explicit构造函数3、类对象的初始化过程C/C++面试常见问题归纳(二)1、智能指针为了解决 动态申请堆内存 而没有回收导致的内存泄漏问题。智能指针模板:auto_ptr、unique_ptr、share_ptr,weak_pre(本文不作讨论),定义了类似于指针的对象。在智能指针过期时让他的析构函数删除指向的内...

2019-07-20 15:33:44 766 2

原创 C/C++面试常见问题(一)

C/C++常见问题C/C++常见问题归纳(一)1、new和malloc的区别2、sizeof和strlen的区别3、野指针4、指针能否重复delete?5、为什么构造函数不能是虚函数?6、为什么要把析构函数定义成虚函数?7、为什么虚函数比普通函数慢?8、头文件和源文件9、extern10、extern "C"C/C++常见问题归纳(一)1、new和malloc的区别new是操作符,mallo...

2019-07-19 14:15:13 717

原创 Git学习笔记

Git学习笔记安装Git创建版本库版本回退工作区和暂存区管理修改远程仓库分支管理标签管理自定义Git搭建Git服务器安装Gitubuntu: $ sudo apt-get install gitwindows: 镜像安装创建版本库a. 选择一个合适的地方,创建一个空目录:$ mkdir learngit$ cd learngitb. 通过git init命令把这个目录变成Git可...

2019-07-19 11:42:52 132

空空如也

空空如也

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

TA关注的人

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