- 博客(110)
- 收藏
- 关注
转载 Docker-Docker容器跨主机通信
Docker默认的网络环境下,单台主机上的Docker容器可以通过docker0网桥直接通信,而不同主机上的Docker容器之间只能通过在主机上做端口映射进行通信。这种端口映射方式对很多集群应用来说极不方便。如果能让Docker容器之间直接使用自己的IP地址进行通信,会解决很多问题。按实现原理可分别直接路由方式、桥接方式(如pipework)、Overlay隧道方式(如flannel、o...
2019-09-09 21:25:00
533
转载 C++数的表示
二进制B八进制O十进制D十六进制H / 0x十六进制十进制数转换成R进制数:整数部分除基取余,上右下左;小数部分乘基取整,上左下右。浮点数的阶用一种称为移码的编码表示方法,方便对阶。阶的编码称为阶码(阶用移码表示的01序列)[E]移=偏置常数+E,偏置常数为2n-1或2n-1-1。int→float:不溢出、可能舍去(int的有效位数比float多,...
2019-04-16 22:41:00
1257
转载 c++函数指针
假如需要定义一个fp指针,可以指向任何返回类型为double、参数类型为int的函数方法为:double (*fp)(int);或者:typedef double (*FP)(int); Fp fp;一般用&取函数首地址赋值给fp。如果省略&,编译器会自动把函数名隐式类型转换成函数首地址调用方法如下:...
2019-04-16 22:10:00
233
转载 c++线性表和数组的区别
在传统C语言程序中,描述顺序表的存储表示有两种方式:静态方式、动态方式顺序表的静态存储表示:#define maxSize 100typedefintT;typedefstruct{ T data[maxSize]; intn;}SeqList;存储数组的大小和空间已经固定分配,一旦数据空间占满,再加入新的数据结构就会产生溢出,...
2019-04-16 22:07:00
269
转载 c++重载操作符
对类的对象进行操作,可以通过成员函数,或者定义一个友元函数(如果需要访问类的私有成员,类需要指定其为友元函数)。如果要用C++的操作符,对类的对象进行操作,就需要针对相应的类,通过操作符重载机制来给出这些操作符的定义不能重载的操作符: 成员选择符. 间接成员选择符.* ...
2019-04-16 22:05:00
187
转载 c++右值引用和转移构造函数
int &&i = 1; //i绑定到了右值1int b = 2;cout << i << endl; //输出1i = b;cout << i << endl; //输出2为了支持移动操作(包括转移构造函数和转移赋值函数),C++引入了一种新的引用类型——右值引用,使用右值引用的代码可...
2019-04-16 21:55:00
194
转载 算法-排序(3)基础排序算法比较
排序的时间开销可用算法执行中的数据比较次数和数据移动次数来衡量。不稳定的排序方法往往是按照一定的间隔移动或交换记录对象的位置,从而可能导致具有相等排序码的不同对象的前后相对位置在排序前后颠倒过来。稳定的排序方法往往在相邻的数据对象间比较排序码,如果发生逆序才交换,具有相等排序码的不同对象在排序前后不会颠倒。一、起泡排序算法1.基础起泡排序算法n-1次起泡,第i次起泡从...
2019-04-16 21:44:00
871
转载 算法-排序(2)锦标赛排序
用完全二叉树定义胜者树,前n-1个结点t[1]~t[n-1]为内部结点(胜者),后n个结点e[1]~e[n]是参赛者。t数组存的是参赛者编号,即e[t[0]]才是最终胜者的值template <class T>class WinnerTree{public: const T maxValue=9999; WinnerTree(i...
2019-04-16 21:21:00
715
转载 操作系统-PV习题
(1)阅览室问题:加入阅览室入口有一本登记册,每个人都必须按顺序签名进去。想法:登记册可以用结构数组A[]表示,包含name和number。此外,还需要信号量seatcount表示剩余座位数。使用信号量mutex约束每次只有一个人能修改登记册struct { char name[10]; int number;}A[100];sem...
2019-04-15 20:58:00
2312
转载 离散数学知识点总结(10)-代数系统与群论
一、代数结构函数f : A×A→A称作A上的一个二元运算,通常写作〇(a,b)或a〇b。此时运算表中的每个元素都属于A,称A对f封闭。例如Z+对除法运算不封闭(除法不是正整数集合上的二元运算)。函数f : A→A称作A上的一个一元运算,通常写作f(a)或fa。f1~fk是A上的k个运算,则(A, f1 ,f2 ,... , fk)是一个代数结构/代数系统...
2019-04-14 09:27:00
2967
转载 离散数学知识点总结(9)-树
一、无向树和有向树对于任何无向图,若图中不存在简单回路,则 m≤n-1无向图是无向树的四个条件互相等价:连通、不存在简单回路、m=n-1满足至少2个 每一对相异顶点之间存在唯一的简单道路 极小连通(每一条边都是桥) 极大无圈因此无向树必定不含重边和自环,一定...
2019-04-10 16:30:00
5606
转载 离散数学知识点总结(8)-图论
一、图的基本概念无向图可以用二元组G=<V , E>表示,其中E是无序积V&V的有穷多重子集。无向图中,所有顶点度数之和∑deg(v)=2|E|,即奇数度的顶点数必是偶数。(自环在计度数时为2)简单图:不存在自环、重边的无向图。由于每条边可用顶点对唯一表示,可用{vi, vj}代表e。有向图中,入度之和∑deg+(v)=出度之和∑deg-(v)=|E|...
2019-04-10 16:21:00
3022
转载 离散数学知识点总结(7)-格
一、格假设(L, ≤)为偏序集,如果对于任意 a, b∈L ,{a, b} 都存在上确界和下确界,则称 (L, ≤) 为一个格(lattice)显然上确界和下确界有唯一性上确界LUB({a, b})记作a∨b,称之为a与b的并(join)下确界GLB({a, b})记作a∧b,称之为a与b的交(meet)举例:对任意a, b∈L,a≤b全序集(A , ≤)必然是...
2019-04-09 23:54:00
3069
转载 离散数学知识点总结(6)-计数技术
鸽巢原理:若将n只鸽子置于m个笼子中, 则至少有一个笼子需容纳⌊(n-1)/m⌋+1个容斥原理:......乘法原理、加法原理:......如果有4个男孩和4个女孩坐成一排,每个人旁边都只能坐着异性,那么共有多少种坐的方式?2*4!*4!由a, b, b, e, e, h, i, s, s, t, t, t可以组成多少个长度为12的字符串?C(12, 3)*C(...
2019-04-09 23:44:00
365
转载 离散数学知识点总结(5)函数
f : A→B指A到B的函数,此时Dom(f)=A、Ran(f)⊆B、B称f的陪域设X和Y是A的子集,f(X∩Y)⊆f(X)∩f(Y),f(X∪Y)=f(X)∪f(Y)BA为B到A上所有函数的集合,称作B上A,|BA|=|B||A|A=B=∅时,BA={∅},|BA|=1。其中空关系是∅到任意集合(包括∅)的函数f(a)=b,此处的b实际是指集合{b},b为a在f下的像...
2019-04-09 23:39:00
941
转载 离散数学知识点总结(4)-集合
集合完全由其元素决定,A=B⟺ ∀x(x∈A⟷x∈B),因此要证A=B只需证A⊆且B⊆A形如{x | P(x)}也未必是集合,例如罗素悖论R={x | x∉R},若R为集合则R∈R⟺R∉R超集:......|A|=card(A)=#A=n:则集合A为n元集,显然有|∅|=0,|{∅}|=1幂集P(A):A的所有子集(包括∅和A自身)所组成的集合。...
2019-04-09 23:37:00
961
转载 离散数学知识点总结(3)-二元关系
一、关系的运算笛卡尔积/直积A×B={(a , b) | a∈A且b∈B},对于∩和∪都满足分配性。A×B=B×A⟺(A=∅)∨(B=∅)∨(A=B)R⊆A×B,当(a , b)∈R时称a与b具有关系R,即xRy。A=B时R就是A上的一个二元关系。例如集合幂集P(A)上的包含关系为P⊆={(x , y) | x∈P(A)∧y∈P(A)∧x⊆y}A上的恒等关...
2019-04-09 23:16:00
4259
转载 离散数学知识点总结(2)-谓词逻辑
一、谓词与谓词公式谓词:表示个体词性质或相互之间关系的词量词:用来表示个体数量的词是谓词的量化:给谓词加上量词一元目谓词P(x)、n元目谓词P(x, y, z, ...)它们是命题形式而非命题因为既没有指定谓词符号P的含义,而且个体词x、y等也是个体变项而不代表某个具体的事物,从而无法确定P(x)、P(x, y)的真值。仅当赋予谓词确定含义,并且个体词取定为个...
2019-04-09 23:09:00
3969
转载 离散数学知识点总结(1)-命题逻辑
一、命题命题:陈述句,有唯一真值/非真既假(不一定知道)简单命题/命题常元:真值确定。命题变元p:常用来表示命题。只有明确表示某个命题时才有具体的含意和确定的真值。命题联结词/命题运算符:否定联结词┐、合取联结词∧、析取联结词∨、蕴含联结词→、与非联结词、或非联结词p→q:当且仅当p真q假时,p→q为假(因此它和┐p∨q等值)。即p为假时,p→q必定为真⟷:当且仅...
2019-04-09 23:08:00
1766
转载 2019在职跨考南大计算机非全日制专硕-初试364经验帖
今天刚刚收到录取通知邮件,一颗悬着的心终于放下了。 接下来,我将为大家介绍一下南京大学计算机科学与技术系-计算机专业学硕/专硕的录取难度、全日制和非全日制的培养方式、我的复习经验、复试流程等。一、背景 我多年前毕业于南京理工大学光电信息工程专业,所学专业课与通信工程、电子信息工程类似,代码基础比较薄弱。毕业后进入江苏电信从事IT方面...
2019-03-28 10:57:00
2883
转载 企业级Registry仓库Harbor的部署与简介
Harbor 是Vmware公司开源的企业级Docker Registry管理项目,开源项目地址:https://github.com/vmware/harborHarbor的所有组件都在Docker中部署,所以Harbor可使用Docker Compose快速部署。(由于Harbor是基于Docker Registry V2版本,所以docker版本至少1.10.0、docker-...
2019-01-02 16:02:00
317
转载 Docker-Docker与IPV6
公司计划在2020年前完成IPV6化改造,于是我先行查阅了一些资料了解Docker进行IPv6化的可能性。预计明年正式开始测试。方法一、使容器中的服务支持IPv6地址不为容器中的服务特别分配IPv6地址。只要Docker把外部的IPv6地址端口映射到容器的IPv4端口上,随后访问主机的IPv6相应端口即可。方法二、为Docker网络分配IPv6地址(1)Dock...
2018-11-20 16:37:00
895
转载 数据结构与算法-字符串与字符串匹配算法
先说说最基础的字符串的数组存储表示:C语言中顺序串的存储分配可分为两种:(1)静态分配的数组表示:#define maxSize256typedef char SeqString[maxSize];长度定义为256,实际只能存储255个字符(最后用“\0”表示串值终结)如需要记录字符串当前实际字符个数,则:#define maxSize...
2018-11-20 16:34:00
323
转载 操作系统-PV操作的原理和几种常见问题
信号量是一种变量类型,用一个记录型数据结构表示,有两个分量:信号量的值和信号量队列指针除了赋初值外,信号量仅能通过同步原语PV对其进行操作s.value为正时,此值为封锁进程前对s信号量可施行的P操作数,即s代表实际可用的物理资源s.value为负时,其绝对值为对信号量s实施P操作而被封锁并进入信号量s等待队列的进程数,即登记排列在s信号量队列之中等待的进程个数s.val...
2018-11-19 15:27:00
2017
转载 操作系统-进程(8)-临界区管理
一、软件算法peterson算法:为每个进程设置标志inside[i],当标志为true时表示此进程要求进入临界区;此外再设置指示器turn指示由哪个进程进入临界区bool inside[2];inside[0] = false;inside[1] = false;enum{0,1} turn;cobeginprocess p0() { in...
2018-11-19 10:36:00
254
转载 算法-利用队列实现逐行打印杨辉三角形的前n行
分别打印二项式(a+b)^n展开项的系数,在程序中利用了一个队列,在输出上一行系数时,将下一行的系数预先放入队列中。在各行系数间插入0。void YANGVI(int n){ Queue q(n+2); //建立队列对象q并初始化。 int i=1,j,s=0,t,u; q.EnQueue(1);q.EnQueue(1); //插入第...
2018-09-14 11:14:00
1910
转载 操作系统-进程(7)死锁和银行家算法
允许多个进程并发执行共享系统资源时,系统必须提供同步机制和进程通信机制。然而,对这种机制使用不当的话,可能会出现进程永远被阻塞的现象。例如,两个进程分别等待对方占有的一个资源,于是两者都不能执行而处于永远等待,这种现象称为死锁。死锁产生的四个必要条件:互斥条件: 进程应互斥使用资源,任一时刻一个资源仅为一个进程独占占有和等待条件: 一个进程请求资源得不到满足而等待...
2018-09-11 11:26:00
342
转载 计算机网络-网络层(6)ICMP协议
互联网控制报文协议(ICMP,Internet Control MessageProtocol),被主机和路由器用来彼此沟通网络层的信息ICMP报文是承载在IP分组中的,即lCMP报文是作为IP有效载荷承载的;当一台主机收到一个指明上层协议为ICMP的IP数据报时,它分解出该数据报的内容给ICMP。如图,ICMP报文有一个4bit类型字段、一个4bit编码字段、一个8b...
2018-09-10 10:54:00
359
转载 操作系统-进程(6)管程
管程试图抽象相关并发进程对共享变量访问,以提供一个友善的并发程序设计开发环境管程是由若干公共变量及其说明和所有访问这些变量的过程所组成管程把分散在各个进程中互斥地访问公共变量的那些临界区集中起来管理,管程的局部变量只能由该管程的过程存取进程只能互斥地调用管程中的过程TYPE <管程名> = MONITOR<管程变量说明>;defin...
2018-09-08 15:50:00
379
转载 计算机网络-链路层(5)点对点链路控制
点对点链路由一个发送端、一个接收端、一条链路组成,无需介质访问控制(Media Access Control),无需明确的MAC寻址,比广播链路容易。常用于拨号链路、ISDN链路。常见的点对点数据链路控制协议:高级数据联系控制(HDLC,High Level Data Link Control)和点对点协议(Point-to-Point Protocol,PPP)PPP的功...
2018-09-08 15:44:00
716
转载 操作系统-进程(5)进程通信机制
交互式并发进程通过信号量及PV操作可以实现进程的互斥与同步,例如生产者-消费者就是一组相互协作的进程,它们通过信号量来协同工作,并引入有界缓冲区来存取。这种低级通信方式不方便而且局限性很大。管程适用于高级程序设计编程,它把分散在各进程中的临界区集中统一管理,采用阻塞/唤醒+集中临界区和一次状态测试策略,提供了同步工具的一种新选择。上述工具可以解决同步和通信问题,但缺乏传递数据能力...
2018-08-29 17:20:00
475
转载 数据结构-散列表
一、散列函数散列表是表示集合和字典的另一种有效方法,通过将关键码映射到表中某个位置来存储元素,然后根据关键码用同样的方法直接访问。散列方法使用的转换函数即散列函数,散列函数不能太复杂。散列函数定义域必须包括全部关键码,值域必须在0到m-1之间(m为散列表允许的地址数),通常关键码集合比散列地址集合大得多,因此散列函数是一种压缩映像函数。对不同关键码,通过散列函数的计算可能得到...
2018-08-15 22:54:00
251
转载 数据结构-字典
往往不做集合的并、交、差运算,而经常需要判定某个元素是否在给定集合中,并且对集合作插入、删除操作。把字典定义为名字-属性对的组合,根据问题的不同,可以为名字和属性赋予不同的意义。典型的字典组织方式有线性表、跳表、散列表字典的抽象数据类型:const int DefaultSize=26template <class Name,class Attribute&...
2018-08-15 10:42:00
181
转载 数据结构-并查集
适合需要反复用到查询某个元素归属于哪个集合的运算。初始化时每个元素自成为单元素集合,parent均为-1。此后parent[x]>0时表示元素x的父在数组中的下标;parent[x]<0时表示以元素x为根的集合的元素个数Find操作可以查询元素归属哪个集合,搜索并返回包含元素x的根即可,有两种方法:(1)非递归方法:while(parent[x]>=0) x...
2018-08-15 10:40:00
98
转载 数据结构-集合
集合的成员是无序的,没有先后次序关系。每个元素在集合中只出现一次,但在实际应用中却有元素重复出现的情况。在某些集合中保存的是实际数据值,在某些集合中保存的是表示元素是否在集合中的指示信息。集合的抽象数据类型:template <class T>class Set{public: virtual Set()=0; virtual ...
2018-08-15 10:39:00
64
转载 数据结构-广义表
广义表简称表,是线性表的推广,表中元素可以是数据元素(原子),也可以是子表。广义表的表头(head)是表中第一个表元素、表尾(tail)是除了表头外其它元素组成的表。首先要对广义表结点类GenListNode和返还值的结构类Item进行定义。它们都有一个用来标明结点类型的标志域utype、一个信息域info。此外,广义表结点类还多了一个尾指针tlink指向下一个结点。utyp...
2018-08-15 10:11:00
247
转载 数据结构-稀疏矩阵
使用一个三元组<row,column,value>来唯一的确定一个矩阵元素。稀疏矩阵用一个三元组数组(三元组表)来表示。在该数组中,各矩阵元素的三元组按照在原矩阵中的位置,以行优先的顺序依次存放。定义一个Trituple结构和一个SparseMatrix类,后者包括了Trituple结构数组、Rows、Cols、Terms、maxTerms(都是从0开始)。求转置...
2018-08-10 12:16:00
209
转载 数据结构-二叉树(8)线索化二叉树
1.中序线索二叉树为了区分线索和左右指针,在每个结点中设置标准ltag和rtag。ltag==0时,表明ltag域中存放的是指向左子女的指针,否则是指向该结点中序下前驱的线索寻找当前结点在中序序列下的后继:rtag==0(右子女指针)rtag==1(后继线索)rightChild==NULL无此...
2018-08-10 10:56:00
136
转载 数据结构-二叉树(7)树与森林
一般树有4种常用表示方法:1.广义表表示法2.父指针表示法寻找父指针的操作时间复杂度为O(1),但寻找子女的操作时间复杂度达到O(n)。3.子女链表表示法适合需要频繁寻找子女的应用。寻找子女的操作在子女链表中进行,时间复杂度为O(d),d为树的度。但寻找父结点的操作时间复杂度达到O(n)。4.子女-兄弟链表示法用二叉树表示一般树,每个结点的度都为2,由三个...
2018-08-09 14:32:00
187
转载 数据结构-二叉树(6)哈夫曼树(Huffman树)/最优二叉树
树的路径长度是从树根到每一个结点的路径长度(经过的边数)之和。n个结点的一般二叉树,为完全二叉树时取最小路径长度PL=0+1+1+2+2+2+2+…带权路径长度=根结点到任意结点的路径长度*该结点的权。树的带权路径长度是所有叶结点的带权路径长度和。带权路径长度WPL最小的扩充二叉树则不一定是完全二叉树,而是权值大的外结点离根结点最近的扩充二叉树。构造Huffman树需要使...
2018-08-09 14:26:00
414
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人