自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据结构(三)——图

图无向图深度优先搜索查找(DFS):添加了一个数组edgeTo[]。这个数组可以找到每个与s连通的顶点回到s的路径。它会记住每个顶点到起点的路径,而不是记录当前顶点到起点的路径。为了做到这一点,在由边v-w第一次访问任意w时,将edgeTo[w]设为v来记住这条路径。换句话说,v-w是从s到我的路径上的最后一条已知的边。这样,搜索的结果是一棵以起点为根节点的树,edgeTo[]是一棵...

2019-05-13 13:12:07 227

转载 epoll内核源码详解

网上很多博客说epoll使用了共享内存,这个是完全错误的 ,可以阅读源码,会发现完全没有使用共享内存的任何api,而是 使用了copy_from_user跟__put_user进行内核跟用户虚拟空间数据交互./* * fs/eventpoll.c (Efficient event retrieval implementation) * Copyright (C) 2001,...,200...

2019-05-11 16:29:17 260

原创 Mysql数据库(二)

MySQL面试常问知识点1.数据库范式第一范式(1NF)在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实...

2019-04-29 21:21:09 460

原创 Mysql数据库(一)

什么是关系型数据库?关系数据库:是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。简单说来就是关系型数据库用了选择、投影、连接、并、交、差、除、增删查改等数学方法来实现对数据的存储和查询。可以用SQL语句方便的在一个表及其多个表之间做非常复杂的数据查询。安全性高。非关系型数据库:简称NOSQL,是基于键值对的对应关系,并且不需要经过SQL层的解析,所以性...

2019-04-29 21:00:01 549

转载 游戏服务器:到底使用UDP还是TCP?

在编写网络游戏的时候,到底使用UDP还是TCP的问题迟早都要面对。一般来说你会听到人们这样说:“除非你正在写一个动作类游戏,否则你就用TCP吧” 或者是 “你能够在MMO游戏中用TCP,因为魔兽世界就用的TCP!”遗憾的是,这些观点都没有反映这个问题的复杂性。背景首先,说明一下,我之前主要是用TCP进行网络编程。我曾为一个流行的在线纸牌游戏编写服务器了好几年,在高峰期我们的每台服务器能够承...

2019-04-26 22:42:56 335

原创 数据结构(二)——查找算法、树

查找算法二分查找略 mid=(lo + hi)/2;数组略普通链表略内核链表略企业链表实现例子: typedef struct LISTNODE//结点定义 { struct LISTNODE *next; }ListNode; typedef struct Person//需要把结点放...

2019-04-23 19:39:02 573

转载 协程

一句话说明什么是线程:协程是一种用户态的轻量级线程。一句话并不能完全概括协程的全部,但是起码能让我们对协程这个概念有一个基本的印象。从硬件发展来看,从最初的单核单CPU,到单核多CPU,多核多CPU,似乎已经到了极限了,但是单核CPU性能却还在不断提升。server端也在不断的发展变化。如果将程序分为IO密集型应用和CPU密集型应用,二者的server的发展如下:IO密集型应用: 多进程-&...

2019-04-22 14:00:09 145

转载 数据库知识总结(2)

一、相关概念和知识点1.数据依赖:反映一个关系内部属性与属性之间的约束关系,是现实世界属性间相互联系的抽象,属于数据内在的性质和语义的体现。2. 规范化理论:是用来设计良好的关系模式的基本理论。它通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。3. 函数依赖:简单地说,对于关系模式的两个属性子集X和Y,若X的任一取值能唯一确定Y的值,则称Y函数依...

2019-04-17 19:14:50 183

原创 编程语言C/C++(七)—— STL(二)

set实现原理:set 的特性是,所有元素都会根据元素的键值自动被排序。set 的元素不像 map 那样可以同时拥有实值(value)和键值(key),set 元素的键值就是实值,实值就是键值,set不允许两个元素有相同的值。set 底层是通过红黑树(RB-tree)来实现的,由于红黑树是一种平衡二叉搜索树,自动排序的效果很不错,所以标准的 STL 的 set 即以 RB-Tree 为底层机...

2019-04-16 19:04:36 588

转载 关于错误:reference to non-static member function must be called

问题:今天刷牛客这道题的时候:题目描述:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。这是我的代码:class Solution {public: bool bijiao(int a, int b) { string sb =...

2019-04-13 17:02:00 7752 1

转载 C++函数的高级特征

C++函数的高级特征重载(overloaded)、内联(inline)、const 和virtual是C++独有而C不具有的四种机制。其中重载和内联机制既可用于全局函数也可用于类的成员函数,const 与virtual机制仅用于类的成员函数。重载和内联是一把双刃剑,用的好可以提高效率,精简程序;而一味滥用也会影响程序的效果。这里根据笔试面试中常碰到的问题,探究一下重载和内联的优点与局限性,说明应...

2019-04-13 14:45:48 307

原创 数据结构(一)——常用的排序算法

排序算法冒泡排序复杂度 n^2排序规则冒泡排序算法的运作如下:(从后往前)1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。3. 针对所有的元素重复以上的步骤,除了最后一个。4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。...

2019-04-13 14:22:58 527

转载 数据库知识总结(1)

数据库也是计算机类笔试面试中不可避免会遇到的考点,尤其是银行和部分传统软件类公司。这里根据整理的资料,对数据库的相关知识也做个总结吧。希望学过数据库但长时间不用的同学根据这些知识能够回忆和重拾,没学过的同学能掌握一些数据库的基础知识。第一节一、相关概念Data:数据,是数据库中存储的基本对象,是描述事物的符号记录。Database:数据库,是长期储存在计算机内、有组织的、可共享的大量数据...

2019-04-10 16:21:18 210

原创 计算机网络(三)—— 应用层

应用层(HTTP)1. ISO七层模型中表示层和会话层功能是什么?表示层:图像、视频编码解,数据加密。会话层:建立会话,如session认证、断点续传。2. 会话层、表示层、应用层数据传输基本单位为报文;包含的主要协议:FTP(文件传送协议)、Telnet(远程登录协议)、DNS(域名解析协议)、SMTP(邮件传送协议),POP3协议(邮局协议),HTTP协议(Hy...

2019-04-09 16:59:28 787

原创 计算机网络(二)—— 传输层

传输层(TCP/UDP)TCP1. 传输层:(段或数据报)传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输以及端到端的差错控制和流量控制;包含的主要协议:TCP协议(Transmission Control Protocol,传输控制协议)、UDP协议(User Datagram Protocol,用户数据报协议);重要设备:。2. 描述TCP头部?至...

2019-04-06 18:16:58 151

原创 编程语言C/C++(六)—— STL(一)

标准模板库C++ STL 的实现:序列式容器(元素的位置与插入的时机、地点有关)(线性结构)1.vector 底层数据结构为数组 ,支持快速随机访问2.list 底层数据结构为双向链表,支持快速增删3.deque 底层数据结构为一个中央控制器和多个缓冲区,详细见STL源码剖析P146,支持首尾(中间不能)快速增删,也支持随机访问。deque是一个双端队...

2019-04-01 18:57:04 1599

原创 操作系统(一) —— 进程线程模型

进程线程模型线程是调度的基本单位,进程是资源分配的基本单位多线程模型1. 线程创建和结束背景知识:在一个文件内的多个函数通常都是按照main函数中出现的顺序来执行,但是在分时系统下,我们可以让每个函数都作为一个逻辑流并发执行,最简单的方式就是采用多线程策略。在main函数中调用多线程接口创建线程,每个线程对应特定的函数(操作),这样就可以不按照main函数中各个函数出现的顺序来...

2019-03-30 14:01:03 1002

转载 内存管理那些事

七、内存管理在写C/C++程序的时候,最头疼的部分一定包括内存管理,一提到内存管理总是提心吊胆,但是又不可避免地常常会遇到,而这块的知识也是公司招聘的一个评价方面,能够很好地体现笔试面试者的功底。这部分的内容稍深一些,大家细心阅读,能对内存管理有一个比较好的把握。7.1 内存分配的方式最长被问到的问题之一,基础中的基础。对C和C++而言,内存分配方式有三种:1)从静态存储区域分配。例如程序...

2019-03-27 17:23:01 327 1

原创 编程语言C/C++(五)

1. 关于友元- 有些情况下,允许特定的非成员函数访问一个类的私有成员,同时仍阻止一般的访问,这是很方便做到的。例如被重载的操作符,如输入或输出操作符,经常需要访问类的私有数据成员。友元(frend)机制允许一个类将对其非公有成员的访问权授予指定的函数或者类,友元的声明以friend开始,它只能出现在类定义的内部,友元声明可以出现在类中的任何地方:友元不是授予友元关系的那个类的成员,...

2019-03-26 18:21:35 9372 1

转载 函数那些事

六、函数那些事函数是C++/C 程序的基本功能单元,当然是笔试面试重点考察内容。函数接口的两个要素是参数和返回值。C 语言中,函数的参数和返回值的传递方式有两种:值传递(pass by value)和指针传递(pass by pointer)。C++语言中多了引用传递(passby reference)。函数的设计必须兼顾功能正确和细节合理。这里对函数的接口设计和内部实现提供了一些参考的规则,同...

2019-03-24 11:15:21 196

原创 题目摘录-编程语言(C++)(四)

Q 31 :题目: 分析一下这段程序的输出: #include<iostream> using namespace std; class B{ public: B(){ cout << "default constructor" << " "; } ...

2019-03-23 15:25:23 1086

原创 编程语言C/C++(四)

1. 堆和栈的区别?- 申请方式不同。 - 栈由系统自动分配。 - 堆由程序员手动分配。- 申请大小限制不同。 - 栈顶和栈底是之前预设好的,大小固定,可以通过ulimit -a 查看,由ulimit -s修改。 - 堆向高地址扩展,是不连续的内存区域,大小可以灵活调整。- 申请效率不同。 - 栈由系统分配,速度快,不会有碎片。...

2019-03-23 15:12:11 9753

原创 C++ 智能指针

C++ 智能指针这里介绍c++里面的四个智能指针: auto_ptr, shared_ptr, weak_ptr([wiːk]), unique_ptr([juː’niːk]) 其中后三个是c++11支持,并且第一个已经被c++11弃用。为什么要使用智能指针:我们知道c++的内存管理是让很多人头疼的事,当我们写一个new语句时,一般就会立即把delete语句直接也写了,但是我们不能避免程...

2019-03-17 00:07:01 437

转载 C++ STL容器底层实现原理

1、vector 容器vector 的数据安排以及操作方式,与 array 非常相似。两者的唯一区别在于空间的运用的灵活性。array 是静态空间,一旦配置了就不能改变,vector 是动态数组。在堆上分配空间。vector 是动态空间,随着元素的加入,它的内部机制会自行扩充空间以容纳新元素(有保留内存,如果减少大小后内存也不会释放。如果新值&gt;当前大小时才会再分配内存,这大大影响了 vec...

2019-03-16 00:13:39 10547 2

原创 计算机网络(一)

计算机网络重点在TCP/IP协议和HTTP协议等。记忆加理解为了使不同计算机厂家生产的计算机能够相互通信,以便在更大的范围内建立计算机网络,国际标准化组织(ISO)在1978年提出了"开放系统互联参考模型",即著名的OSI/RM模型(Open System Interconnection/Reference Model)。它将计算机网络体系结构的通信协议划分为七层,自下而上依次为:物...

2019-03-13 21:02:50 1815

转载 C,C++基础和编程风格(2)

四、表达式和基本语句4.1 运算符与复合表达式首先非常重要的一个点是C/C++运算符的优先级问题,下图为总结的一张表,结合律特殊的运算符已经用黑体加粗标明出来了。说实话,上表中的运算符优先级和结合律要熟记是非常困难的。虽说有表在,但是也不能每次都查表,所以我们在写程序的时候尽量要遵循后续规则:如果代码行中的运算符比较多,用括号确定表达式的操作顺序,避免使用默认的优先级。 ...

2019-03-11 13:06:16 798

原创 编程语言C/C++(三)

1. 结构体内存对齐问题?- 按序存储,装得下尽量装,装不下换一行。- 如果最大的基本元素小于等于机器位宽,按照最大基本元素大小对齐,否则按照机器字长对齐。2. static作用是什么?在C和C++中有何区别?- static可以修饰局部变量(静态局部变量)、全局变量(静态全局变量)和函数,被修饰的变量存储位置在静态区。对于静态局部变量,相对于一般局部变量其生命周期长,直到程序运行结...

2019-03-10 15:24:54 3104

原创 题目摘录-编程语言(C++)(三)

Q 21 :题目: i的初始值为0,i++在两个线程里面分别执行100次,能得到最大值是(),最小值是()。答案: 200 2解答: 考察多线程操作同一未上锁变量。 1. 每次都准确加1,结果为最大,200。 2. 结果为2时步骤: a取内存0到寄存器,b取内存0到寄存器; a执行99次并写入内存,内存值为9...

2019-03-09 17:50:43 1940

转载 腾讯面经(C/C++后台)

T1作者:木舟遥链接:https://www.nowcoder.com/discuss/159765?type=2来源:牛客网人生中第一次找工作面试,本人大三。中午点了外卖不久,来自广东深圳的电话突然打来,我还以为是送外卖的,结果是腾讯面试官,问我现在方便不,我寻思着。。。马上送外卖的给我打电话怎么办?就支支吾吾了一会儿,问他下午有时间没,他说可能没时间,我说那就现在吧(事后真想扇自己两...

2019-03-09 17:46:46 1858

转载 一个整型数组里除了两个数字之外,其他的数字都出现了偶数次。请写程序找出这两个只出现一次的数字

题目描述一个整型数组里除了两个数字之外,其他的数字都出现了偶数次。请写程序找出这两个只出现一次的数字。方法一:最通用的,利用一个ArrayList来存储所有数组元素,遍历一次,不重复的就添加进去,重复的就去掉该元素即可public class Solution {public void FindNumsAppearOnce(int [] array,int num1[] , int num...

2019-03-08 13:30:48 702

转载 百度三面面经(C/C++工程师)

作者:thereisnoend链接:https://www.nowcoder.com/discuss/136247来源:牛客网从牛客网获得过很多帮助,因此回馈一波~以下题目尽可能回忆,顺序不一定对。一面new/delete和malloc/free的区别vector的结构?vector拷贝时发生什么一个数组,只有一个数字出现奇数次,其余数字出现偶数次,如何得到这个数字?如果出现奇数次...

2019-03-08 13:13:16 1400

原创 题目摘录-编程语言(C++)(二)

题目摘录-编程语言(C++)(二)Question 11 :题目: 某32位系统下, C++程序,请计算sizeof 的值: char str[] = "http://www.xxxxx.com"; char *p = str; int n = 10; sizeof(str) = (1); sizeof(p) = (2; sizeof(n...

2019-03-08 13:01:09 2519

原创 题目摘录-编程语言(C++)(一)

题目摘录-编程语言(C++)(一)Question 1 :题目: 以下代码: class ClassA{ public: virtual ~ClassA(){}; virtual void FunctionA(){}; }; class ClassB{ public: virtual void Fu...

2019-03-08 12:55:36 3958

转载 C,C++基础和编程风格(1)

找工作笔试面试那些事儿(1)—C,C++基础和编程风格(1)前言眼看着又要到一年一度的找工作季了,遥想去年这会儿,学校同学们也都是一副要上战场似得枕戈待旦整装待发的情景。想来自己当时笔试面试也确实参加了不少,无奈技术和智商平平,最后结果一般,但也确实经历了不少,外加一直有总结和整理资料的小习惯,手头上确实攒下了一些笔试面试的资源。又最近频繁有师弟师妹问我要相关的资料,想来还不如自己整理整理发到...

2019-03-07 12:40:47 731

原创 Shell基本入门(二)

Shell基本入门(二)1、while语句:Shell脚本提供了while命令,用于创建类似于C语言编程中while语句一样的循环,使用格式:while [ condition ]doCommandsdone另外,while命令允许在while语句行定义多条test命令,只有最后一条测试命令的退出状态是用来决定循环是何时停止的2、until语句:until命令刚好与while...

2019-03-07 12:26:07 823

原创 Shell基本入门(一)

Shell基本入门(一)1、脚本是一个包含一系列命令序列的文本文件,当运行这个脚本文件时,文件中包含的命令序列将得到自动执行2、#! 作用:指明需要用的解析器(bin/bash 、 bin/sh)3、shell脚本允许用户设置和使用自己的变量,变量可以是数字或者字符串,用户无需指定其类型,也无需在使用前定义(等号两边不能加空格) #!/bin/sh ...

2019-03-07 12:13:37 588

原创 编程语言C/C++(二)

编程语言C/C++的一些基本概念(二)(1)关于Linux下的输入/输出重定向:在Linux中,每个打开的文件被赋予一个文件描述符(file descriptor),包括标准输入(stdin),标准输出(stdout)和标准错误输出(stderr),由0,1,2分别描述。command &amp;&gt; file 表示将标准输出(stdout)和标准错误输出(stderr)重定向至指定的文...

2019-03-07 11:54:39 8210

原创 SQL使用入门

SQL使用入门当面对一个陌生的数据库时,通常需要一种方式与它进行交互,以完成用户所需要的各种工作,这种时候,就要用到SQL语言了。SQL是Structure Query Language(结构化查询语言)的缩写,它是使用关系模型的数据库应用语言。SQL语句主要可以划分为以下3种类别:1)DDL(Data Definition Languages):数据定义语言2)DML(Data Mani...

2019-03-07 11:46:39 1417

原创 编程语言C/C++(一)

编程语言C/C++的一些基本概念(一)(1)简述变量声明和定义的区别。为变量分配地址和存储空间的称为定义,不分配地址的称为声明。一个变量可以在多个地方声明,但是只在一个地方定义。加入extern修饰的是变量的声明,说明此变量将在文件以外或在文件后面部分定义(2)正确认识sizeof:**在32位机器中,如下代码:答案为4,23void example(char acWelcome[]){...

2019-03-06 17:46:45 13648 4

原创 计算机异常控制流

异常控制流异常就是控制流中的突变,用来响应处理器状态中的某些变化。在任何情况下,当处理器检测到有事件发生时,它就会通过一张叫做异常表的跳转表,进行一个间接过程调用(异常),到一个专门设计用来处理这类事件的操作系统子程序(异常处理程序)。异常的类别中断 来自I/O设备的信号 异步 总是返回到下一条指令陷阱 有意的异常 同步 ...

2019-03-06 17:33:48 560

空空如也

空空如也

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

TA关注的人

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