- 博客(58)
- 收藏
- 关注
原创 OSI七层模型
物理层:主要定义物理设备标准,如网线的接口类型,光纤的接口类型,各种传输介质的传输速率等,他的主要作用是传输比特流(就是由1,0转化为电流强弱来进行传输,到达目的地后再转化为1,0,也就是我们常说的数模转换与模数转换)这一层的数据叫做比特。 数据链路层:定义了如何让格式化数据以帧为单位进行传输,以及如何控制对物理介质的访问,这一层通常还提供错误检测和纠正,以确保数据的可靠传输。 网络层:在位于...
2019-10-26 14:59:45 232
原创 排序算法(堆排序)
堆排序1.什么是堆堆通常是一个可以被看做一棵完全二叉树的数组对象。堆总是满足下列性质:堆中某个节点的值总是不大于或不小于其父节点的值; 堆总是一棵完全二叉树。堆的定义如下:n个元素的序列{k1,k2,ki,…,kn}当且仅当满足下关系时,称之为堆。 (ki <= k2i,ki <= k2i+1)或者(ki >= k2i,ki >= k2i+1),...
2019-10-26 11:54:50 228
原创 TIME_WAIT状态
客户端在接收到服务器的结束报文段之后,并没有直接进入closed状态,而是转移到了TIME_WAIT状态,在这个状态,客户端连接要等待一段长为2msl的时间(报文的最大生存时间),才能完全关闭,msl是tcp报文段在网络中的最大生存时间,标准文档的建议值是2min.TIME_WAIT状态存在的原因有两点:可靠的终止tcp连接 保证迟来的tcp报文段有足够的时间被识别并被丢弃第一个原...
2019-10-25 23:46:02 499
原创 c 知识点总结
c/c++的区别? 讲一讲多态?如何实现多态? 构造函数额能不能写成虚函数? 析构函数能不能写成虚函数? inline函数能不能写成虚函数? static函数能不能写成虚函数? 析构函数什么情况下写成虚函数? rtti是什么? 虚表什么时候产生? 虚表存放在哪里? 项目中的mvc模式如何使用到多态的?可不可以不使用? 项目中为什莫使用mvc? 介绍项目中使用的单例模式? ...
2019-10-25 18:03:57 289
原创 基础编程题
#include <stdio.h>#include <stdlib.h>#include <iostream>#include <algorithm>#include<string.h>using namespace std;int max_muns(int m,int n){ int t; if(m...
2019-10-23 18:27:59 409
原创 atoi() 与stoi()函数
共同点:都是c++的字符处理函数,把数字字符串转变为int输出 头文件都是#include<cstring>不同点:atoi()的参数是const char *,因此对于字异字符串str我们必须调用c_str()的方法把这个string 转换成const char *类型的,stoi()的参数是const string *,不需要转换成const char *; stoi...
2019-10-21 22:43:35 1741 1
原创 笔试总结(一)
c++岗位基础知识c++中函数有三种传递方式:值传递,指针传递,引用传递 描述"A小于B或小于C"的表达式为: 用new申请某一个类的动态对象数组时,在该类中必须能够匹配到默认构造函数,否成程序会产生一个编译错误 举出c++中自定义的数据类型:class,struct,enum,union 简述成员函数,全局函数,和友元函数的差别 结构struct 和类class有什么区别 析构函...
2019-10-21 17:55:27 195
原创 两道算法题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ...
2019-10-20 20:48:30 113
原创 一些简单函数的实现
#include<iostream>#include<stdio.h>#include<vector>#include<assert.h>#include <string.h>using namespace std;#include <stdio.h>#include <assert.h>...
2019-10-19 17:27:31 180
原创 合并两个有序数组
题目:给定两个有序数组,nums1和nums2,将nums2合并到nums1中,使得nums1成为一个有序数组(假设nums1)有足够的空间思路:(1)申请一个新的数组,从前往后同时扫描两个数组,每次取两个数组中较小的元素,并将相应数组的扫描指针右移一步题目假设nums1有足够的空间,则可以直接将Nums2中的数据合并到nums1中数组的合并结果和原始数组Nums1的元素需要同时存...
2019-10-18 21:09:27 242
原创 总结一些易错的代码运行题
#include<stdio.h>#include<iostream>using namespace std;void main(){ char *x = "abcd"; x+= 2; cout<<x;}#include<stdio.h>#include<iostream>using namespace...
2019-10-16 10:34:05 722
原创 IO复用——poll系统调用
poll系统调用和select 系统调用类似,也是在指定时间内轮询一定数量的文件描述符,以测试其中是否有就绪着,poll 原型如下:#include<poll.h>int poll(struct pollfd*fds,nfds_t nfds,int timeout);(1)参数fds是一个pofffd结构类型的数组,它指定我们所有感兴趣的文件描述符上发生的可读可写和异常的...
2019-09-28 20:50:22 263
原创 IO复用-——select
IO复用使得程序能够监听多个文件描述符,这对提高程序的性能至关重要。通常,网络程序在下列情况下需要使用IO复用技术。客户端程序需要同时处理多个socket 客户端程序需要同时处理用户输入和网络连接 tcp服务器要同时处理连接套接字和监听套接字 服务器需要同时处理tcp请求和udp请求 服务器同时要监听多个端口或者处理多种服务select系统调用在一段指定时间内监听用户感兴趣的文件...
2019-09-28 17:24:11 178
原创 高性能io框架库libevnet 简介
libevent 库简介libevent 是一款事件驱动的网络开发包,由于采用c语言开发 ,体积小,跨平台,速度极快,大量开源项目使用了libevent比如谷歌浏览器,和分布式告诉缓存系统memcached,libevnet支持kqueue,select,poll,epoll,iocp(非阻塞的工作模式),事件内部机制完全独立于公开的额事件api,libevnet 支持跨平台,可在lin...
2019-09-26 13:26:01 796
原创 SQL
SQL概述sql(structured query language)是一套程序员和底层数据库交流的一套标准SQL的分类数据查询语言(DQL-data query language)代表关键字select数据操纵语言DML(data manipulation language)代表关键字 insert delete update数据定义语言(DDL data defin...
2019-08-16 14:27:23 278
原创 STL标准模板库简介h
STL诞生可重复利用 c++面向对象和泛型编程思想,目的就是重复性的提升 大多数情况下,数据结构和算法都未能有一套标准,导致被迫从事大量重复工作 为了建立数据结构和算法的一套标准,诞生了STLSTL基本概念STL标准模板库(standard Template Library) DTL从广义上分为 容器(container)算法(algorithm)迭代器(iterator) 容...
2019-08-15 18:23:41 203
原创 c++外观模式代码举栗子
#include<stdio.h>#include<iostream>#include<string>using namespace std;/*外观模式:就是将复杂的子类系统抽象到同一个接口进行管理。外界只需要通过此接口与子类系统进行交互,而不必直接与复杂的子类系统进行交互*///电视class Television{publ...
2019-08-15 10:45:04 155
原创 c++代理模式
代理模式的定义:为其他对象提供一种代理以控制这个对象的访问,在某些情况下,一个对象不适合或者不可能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式实现:#include <iostream>#include<string>using namespace std;//提供一种代理控制其他对象的访问class Abstrac...
2019-08-15 09:28:22 135
原创 c++引用
引用的基本作用引用作用:给变量起别名数据类型&别名=原名int a=10;int &b=a;b=20;cout<<a<<endl; //20//因为ab操作同一块内存引用的注意事项引用必须初始化 引用初始化后就不能在改变int a=10;//int &b; //errint &b=a; //ok...
2019-08-11 09:54:30 84
原创 new关键字
new 的基本语法int * func(){ //在堆区创建整形数据 //new 返回是 该数据类型的指针 //返回int * int *p=new int(10); return p;}void test01(){ int *p=func(); cout<<*p<<endl; cout&l...
2019-08-11 09:17:22 137
原创 C++ 多态
多态的基本概念多态是c++面向对象的三大特性之一多态分为两类静态多态:函数重载和运算符重载属于静态多态,复用函数名 动态多态:派生类和虚函数实现运行时的多态静多态和动多态的区别:静态多态的函数地址早绑定,编译阶段确定函数地址 动态多态的函数地址晚绑定,运行阶段确定函数地址#include<iostream>using namespace std;class...
2019-08-07 16:33:16 108
原创 c++继承
继承:#include<stdio.h>#include<iostream>class base{public: int m_a;protected: int m_b;private: int m_c;};class son:public base{public: int m_d;};void test01(){ std::...
2019-08-01 20:58:10 131
原创 MySQL索引概述
1.什么是索引? --索引的英语单词是:index --索引相当于一本字典的目录,索引额作用是提高程序的检索效率//查询效率2.主键自动添加索引,所以能够通过主键查询尽量通过主键查询,效率较高3.索引和表相同,索引是一个对象,表存储在硬盘文件中的,索引也是存储在硬盘文件中的4.在MYSQL数据库管理系统中,对表中数据进行检索的时候,通常包括几种检索方式? --...
2019-07-31 20:43:20 182
原创 mysql 事务概述
什么是事务 --事务的英语单词:Transaction--事务一个最小的不可再分的工作单元,通常一个事务对应一个完整的业务【例如一个银行账户转账业务,该业务就是一个最小的工作单元】 而一个完整的业务需要批量的DML语句(insert updata delete)共同联合完成。 事务只和DML语句有关系,或者说DML语句才有事务 以上所描述的批量DML语句总共有多少条语...
2019-07-31 20:11:27 223
原创 mysql 存储引擎
mysql特有的存储引擎mysql可以将数据以不同的技术存储在文件(内存),这种技术称为存储引擎每一种存储引擎都使用不同的存储机制,索引技巧,锁定水平,最终提供广泛且不同的功能show engines;//查看存储引擎上图是我mysql的版本,在做练习时候版本不一样,所支持的存储引擎也是不一样的MYISAM存储引擎(不支持事务)是My...
2019-07-31 11:25:53 98
原创 git的安装和使用
git 的安装和使用目的:通过git管理github托管代码,实际过程中通常都使用git下载:https://www.git-scm.com/dowmload/win(这里就不多说安装过程了)Git工作区域git初始化及仓库创建和操作基本信息设置1.设置用户名git -config --global user.name '用户名'2.设置用...
2019-07-26 20:28:50 141
原创 MySQL
打开数据库service mysqld start // 开启mysql服务端mysql -u roou -p //客户端开启并连接服务器//输入密码MySQL语言一共分为四大类DDL:数据定义语言(Data Definition Language)操作对象:数据库/表关键字:create(创建) drop(删除) alter(修改) show(查看)...
2019-07-25 21:57:25 209
原创 github简单介绍
利用github托管项目代码1.介绍github里面的简单英文单词仓库(Repository)仓库用来存放项目代码,每一个项目对应一个仓库,多个开源项目则有多个仓库收藏(Star)收藏项目,方便下次查看复制克隆项目(Fork)Pull Request(发起请求)这个是基于fork的,如果别的fork了你的项目在你的基础上做了修改,后来觉得改的不错,应该要...
2019-07-23 20:18:25 437
原创 n后问题
1.问题描述在n*n格的棋盘上放置彼此不受攻击的n个皇后,任何两个皇后不放在同一行同一列,同一斜线上,问有多少种放法。2.算法设计用n元组x[1:n]表示n后问题的解,其中x[i],表示皇后i放在第i行第x[i]列,若两个皇后分别放在(i,j),(k,l)位置,且i-j=k-l或i+j=k+l,说明这两个皇后处于同一斜线上,以上连个方程等价于i-k=j-l 或i-l=k-j;因此...
2019-07-20 18:27:53 1778 1
原创 c++设计模式
1.单例模式单例模式的概念:单例模式是一种对象创建型模型,使用单例模式,可以保证为一个类生成唯一的实例对象,也就是说,在整个程序空间中,该类只存在一个是对象。为什么要使用单例模式在系统开发中我们常常有以下需求:在多个线程之间,比如初始化一次socket资源,比如servlet环境,共享同一个资源或者操作同一个对象 在整个程序空间使用全局变量,共享资源 大规模系统中为了性能的考虑...
2019-07-18 21:35:45 204
原创 哈希表
自己照着书现学的1.什莫是哈希表 在结构中查找一个记录时都要经过比较,这一类查找方法建立在“比较”的基础上。顺序查找时比较的结果为"="和“!=”两种可能在折半查找,二叉排序树查找,和B-树查找时,比较的结果为“<”"="">"三种可能,查找的效率依赖于查找过程中的所进行的比较次数。 理想的情况下是希望不经过任...
2019-03-08 00:23:23 133
原创 BST(二叉排序树)
二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。查询二叉搜索树:递归的:tree_search(x,k)if(x==NULL |...
2019-01-25 15:57:34 1297
原创 线索二叉树
线索二叉树:(不经常用,就是把空指针利用起来)顺便说一下遍历二叉树的方法(递归,用栈,线索二叉树,还有二叉排序树)提出问题:线索二叉树的定义和结构,通过遍历二叉树可得到节点的一个线性序列,在线性序列中,很难容求得某个节点的直接前驱和后继,,但是在二叉树上只能找到节点的左孩子,右孩子,节点的前驱和后继只有在遍历过程中才能得到,那末,如何保存遍历二叉树后动态得到的线性序列以便快速找到某个节...
2019-01-21 21:20:46 2125
原创 24点
这个图画的有些乱,还得自己分析一遍啊!分析了好久好久好久~淡淡一个递归还很好分析,循环里面有个递归,真的好难哦,,老师说层次分析,深度思考,就花了上面的图源代码:二十四点class Solution {public: bool judgePoint24(vector<int>& nums) { bool res = false...
2019-01-21 20:20:49 441
原创 二叉树
二叉树的特点:1、每个结点至多只有两棵子树(即二叉树中不存在度大于2的结点);2、二叉树的子树有左右之分,其次序不能任意颠倒。 二叉树的递归定义 二叉树(BinaryTree)是n(n≥0)个结点的有限集。它或者是空集(n=0),或者同时满足以下两个条件: (1) 有且仅有一个根结点; (2) 其余的结点分成两棵互不相交的左子树和右子树。二...
2019-01-18 12:15:25 4396
原创 用异或解决的问题
给定一个只包含整数的有序数组,每个元素都会出现两次,唯有一个数只会出现一次,找出这个数。示例 1:输入: [1,1,2,3,3,4,4,8,8]输出: 2示例 2:输入: [3,3,7,7,10,11,11]输出: 10class Solution {public: int singleNonDuplicate(vector<int>&...
2019-01-16 20:24:51 1705
原创 进程地址空间 实模式和保护模式
进程地址空间是虚拟地址空间就要把他转化位物理地址,通过mm_struct中有个pgd 的指针指向页目录表,,通过页目录表可以找到对应的页表,然后通过页表找到物理页面,这样就把虚拟地址转换成了物理地址开始第一:实模式下程序的运行回顾.程序运行的实质是什么?其实很简单,就是指令的执行,显然CPU是指令得以执行的硬件保障,那么CPU如何知道指令在什么地方呢?...
2019-01-15 02:44:48 699
原创 c和c++区别 —(2)
const:1.c中const修饰的值称为常变量,c++中const定义的是常量值不允许改变在.c文件中定义了一个const常量a,a的值为10,定义一个指针来保存a的地址,修改*p(地址里面保存的值),此时a的值会被改变,因此在c语言中const修饰的值是可以通过地址改变的例如:在.c文件中 这样写 const int a =10; ...
2018-11-05 11:23:28 248
原创 总结一下操作系统里面的几个算法
1.作业调度算法2.进程调度算法3.银行家算法4.页面置换算法5.磁盘调度算法1.作业调度算法(1)先来先服务(FCFS) (2)短作业优先(SJF) (3)优先级调度算法(PSA) (4)高响应比优先调度算法(HRRN) 在批处理系统中,fcfs算法所考虑的只是作业等待时间,而忽视了...
2018-06-15 09:06:44 7226 1
原创 从扑克牌中随机抽5张排,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为 1,J为11,Q为12,K为13,而大,小王可以看成任意数字。
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<math.h.> #include<assert.h> #define n 5 int main() { int arr[n]={0}; int count =0; ...
2018-06-15 07:51:33 1235
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人