自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring cloud中链路跟踪(Sleuth+Zipkin)

Spring Cloud Sleuth为Spring Cloud提供了分布式跟踪的解决方案Zipkin是分布式跟踪系统,主要功能是收集系统的时序数据,从而追踪微服务框架的系统延时等问题。 ## 跟踪方式一种采用原生的sleuth,是http方式。zipkin是其中一种实现方式一种采用异步的方式,结合kafaka/rabbitmq等第三方中间件实现,提高效率## 数据存储方式...

2018-08-01 17:59:57 343

转载 有关散列表

散列表的概念 注意:   ①由同一个散列函数、不同的解决冲突方法构造的散列表,其平均查找长度是不相同的。  ②散列表的平均查找长度不是结点个数n的函数,而是装填因子α的函数。因此在设计散列表时可选择α以控制散列表的平均查找长度。 通过链接法解决冲突:成功查找的期望查找长度O(1+a), 不成功查找的平均查找长度也为O(1+a)。 开放寻址解决冲突:引入探查序列,对于a<1

2017-08-04 23:38:32 382

原创 c++文件的输入输出

文件的输入输出 (Input/Output with files) C++ 通过以下几个类支持文件的输入输出: ofstream: 写操作(输出)的文件类 (由ostream引申而来) ifstream: 读操作(输入)的文件类(由istream引申而来) fstream: 可同时读写操作的文件类 (由iostream引申而来)打开文件(Open a file) 对这些类的一个对象所做的第

2017-02-26 13:51:44 266

原创 C++异常处理机制

异常处理 增强错误恢复能力是提高代码健壮性的最有力的途径之一,C语言中采用的错误处理方法被认为是紧耦合的,函数的使用者必须在非常靠近函数调用的地方编 写错误处理代码,这样会使得其变得笨拙和难以使用。C++中引入了异常处理机制,这是C++的主要特征之一,是考虑问题和处理错误的一种更好的方式。使用 错误处理可以带来一些优点,如下: (1)错误处理代码的编写不再冗长乏味,并且不再和正常的代码混合在一起

2017-02-26 13:35:13 372

原创 C++中代码的重用

类模板与模板类的概念 (1) 什么是类模板 一个类模板(也称为类属类或类生成类)允许用户为类定义一种模式,使得类中的某些数据成员、默认成员函数的参数、某些成员函数的返回值,能够取任意类型(包括系统预定义的和用户自定义的)。 如果一个类中数据成员的数据类型不能确定,或者是某个成员函数的参数或返回值的类型不能确定,就必须将此类声明为模板,它的存在不是代表一个具体的、实际的类,而是代表着一类类。(2

2017-02-26 13:33:22 244

原创 C++中代码的重用

类模板与模板类的概念 (1) 什么是类模板 一个类模板(也称为类属类或类生成类)允许用户为类定义一种模式,使得类中的某些数据成员、默认成员函数的参数、某些成员函数的返回值,能够取任意类型(包括系统预定义的和用户自定义的)。 如果一个类中数据成员的数据类型不能确定,或者是某个成员函数的参数或返回值的类型不能确定,就必须将此类声明为模板,它的存在不是代表一个具体的、实际的类,而是代表着一类类。(2

2017-02-26 13:28:54 358

原创 C++中代码的重用

类模板与模板类的概念 (1) 什么是类模板 一个类模板(也称为类属类或类生成类)允许用户为类定义一种模式,使得类中的某些数据成员、默认成员函数的参数、某些成员函数的返回值,能够取任意类型(包括系统预定义的和用户自定义的)。 如果一个类中数据成员的数据类型不能确定,或者是某个成员函数的参数或返回值的类型不能确定,就必须将此类声明为模板,它的存在不是代表一个具体的、实际的类,而是代表着一类类。(2

2017-02-26 13:25:07 300

原创 C++类继承

C++类继承中总共可以通过三个方式来实现,包括:公有继承(public),私有继承(private),保护继承(protected) 等。单继承定义: class B:public { < 派生类新定义成员> }; 多继承的定义 : class C:public A,private B { < 派生类新定义成员> }; 公有继承(public) 基类的公有成员和保护成员可以作

2017-02-26 13:16:08 202

原创 数据结构——深度优先遍历和广度优先遍历

图的遍历  图的遍历(Traversing Graph):从图中某一顶点出发访遍图中其余顶点,且使每一个顶点仅被访问一次。   图的遍历有两种方法:深度优先搜索和广度优先搜索。深度优先遍历   深度优先遍历(Depth-First Traversal):首先访问出发点v,并将其标记为已访问过;然后依次从v出发搜索v的每个邻接点w,若w未曾访问过,则以w为新的出发点继续进行深度优先遍历,直至

2017-02-16 19:24:21 2419

转载 C++运算符重载

1.一般运算符重载 class A { public: A(int d):data(d){} A operator+(A&);//成员函数 A operator-(A&); A operator*(A&); A operator/(A&); A operator%(A&); friend A operator+(A&,A&);//友元函数 friend A op

2017-02-15 22:24:20 233

原创 c++中String类(2)

string的比较: bool operator==(const string &s1,const string &s2)const;//比较两个字符串是否相等 运算符”>”,”<”,”>=”,”<=”,”!=”均被重载用于字符串的比较; int compare(const string &s) const;//比较当前字符串和s的大小 int compare(int pos, int n,

2017-02-14 22:20:24 189

原创 c++中String类(1)

string类的构造函数:string(const char *s); //用c字符串s初始化 string(int n,char c); //用n个字符c初始化 此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2=”hello”;都是正确的写法。当构造的string太长而无法表达时会抛出length_error异常 ;string类的字

2017-02-14 22:18:04 482

原创 友元函数和static类

友元 友元机制允许一个类将对其非公有成员的访问权授予指定的函数或类。 友元可以出现在类定义的内部的任何地方。 友元不是授予友元关系的那个类的成员,所以它们不受声明出现部分的访问控制影响。 建议:将友元声明成组地放在类定义的开始或结尾。1 友元类 class Husband { public: friend class Wife; p

2017-02-12 23:12:08 393

原创 C++ 构造函数

构造函数 构造函数是特殊的成员函数,用来保证每个对象的数据成员具有合适的初始值。 构造函数名字与类名相同,不能指定返回类型(也不能定义返回类型为void),可以有0-n个形参。 在创建类的对象时,编译器就运行一个构造函数。1 构造函数可以重载 可以为一个类声明的构造函数的数量没有限制,只要每个构造函数的形参表是唯一的。 class Sales_ite

2017-02-12 23:09:04 339

转载 C++ 类总结(1)

一、C++类的定义 C++中使用关键字 class 来定义类, 其基本形式如下: class 类名 { public: //行为或属性 protected: //行为或属性 private: //行为或属性 };示例: 定义一个点(Point)类, 具有以下属性和方法: ■ 属性: x坐标, y坐标 ■ 方法: 1.设置x,y的坐标值

2017-02-10 22:43:36 281

转载 Linux网络编程select模型的实现

简单的使用linux下的select模型实现了一个http的server#include #include #include #include #include #include #include #include #include #define LISTENQ 5 #define OPEN_MAX 1024#define

2017-02-09 18:47:51 231

原创 C++部分知识点简单整理

第二章 1. 类是对象的抽象,对象则是类的实例。类是抽象的,不为其分配存储空间,对象是具体的,要为其分配存储空间。类与结构的异同。 2. private(私有的)— 只能被本类的成员函数引用。类外的不能引用(友元类除外),默认值。 public(公用的)— 既可以被本类的成员函数引用,也可被本类中的其他函数引用。 protected(受保护的)—不能被生成类外访问,但可以被生成类的成员函数访

2017-02-08 19:56:12 244

原创 进程间通信的几种方式

1、 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。 2、有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。 3、 信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访

2017-02-07 23:33:11 304

转载 用c语言实现在母字符串中查找子字符串出现的次数

//功能:用c语言实现在母字符串中查找子字符串出现的次数 //分析:从母字符串中的第一个字符开始寻找与子字符串第一个字符相同的子串 //然后从第二个字符开始,直到母字符串结束 //测试用例: 母字符串aaaaaaaaaaaa // 子字符串aaaint Num0fstr(char *Mstr, char *substr) {int numb

2017-02-06 22:46:22 2593

原创 连接两个字符串 C语言

#include < stdio.h> #include < stdlib.h>char* strcat_self(char *strFrist,char *strSecond){ int i=0,j=0; static char newstr[20]; char *p; p = newstr; while(*(strFrist+i)!=’\0’

2017-02-05 22:43:25 1419

原创 C语言蛇形矩阵例题

例题: 某同学玩一个数字游戏,取个n行n列数字矩阵,数字的填补方法为:从1开始以顺时针方向绕行,逐圈扩大,直到n行n列填满数字,请输出该n行n列正方形矩阵代码: # include< stdio.h> void main() { int n,i,j; i=(n-1)/2,j=(n-1)/2; m[i][j]=1; for(k=1;k<=(n+1

2017-02-04 21:17:10 841

原创 字符串逆序

1、普通逆序 # include< stdio.h> # include < stdlib.h> # include < string.h>int main() { char str[100]; gets(str); int i = 0; char ch; int len = strlen(str); for(i = 0; i

2017-02-03 20:04:22 256

原创 整数转换成对应的二进制、八进制数

1、整数转换成对应二进制# include < stdio.h>int binaryNum[16]; //存放转换后得到的二进制码 int count = 0; //计数十进制整数被2除的次数 int oneCount = 0; //得到的二进制码中1的个数void main(){ int num; printf(“输入一个十进制的整数:”); scanf(“

2017-02-02 20:35:32 857

原创 字符串转换成对应十进制、十六进制数

问题1:讲一个十进制数字的字符串表示转换成对应的整数。举例:将“1234”转换成整数1234. /将字符串s转换成相应的整数/ int atoi(char s[]) { int i; int n = 0; for (i = 0; s[i] >= ‘0’ && s[i] <= ‘9’; ++i) { n = 10 * n +

2017-02-01 20:07:19 488

原创 Linux C 字符串操作

所属头文件:,string.h 0、获取字符串长度:int strlen(char *s) int strlen(char *s)函数说明:此函数用于获取s的长度,不包括’\0’注:切记最好保证s的尾部是’\0’,strlen函数读到’\0’会自动停止然后统计字符数 返回值:字符数1、查找指定的字符:index函数,rindex函数,strchr函数 strrchr(其中index函数和str

2017-01-31 19:22:07 228

原创 c语言指针(四)

7、指针和函数的关系 可以把一个指针声明成为一个指向函数的指针。 int fun1(char *,int); int (pfun1)(char ,int); pfun1=fun1; int a=(*pfun1)(“abcdefg”,7); //通过函数指针调用函数。 可以把指针作为函数的形参。在函数调用语句中,可以用指针表达式来作为实参。 例十四: int fun(c

2017-01-29 20:54:10 162

转载 c语言指针(三)

5、数组和指针的关系 数组的数组名其实可以看作一个指针。看下例: 例九: intarray[10]={0,1,2,3,4,5,6,7,8,9},value; value=array[0]; //也可写成:value=*array; value=array[3]; //也可写成:value=*(array+3); value=array[4]; //也可

2017-01-29 20:51:39 168

原创 C语言指针(二)

2**、指针的算术运算** 指针可以加上或减去一个整数。指针的这种运算的意义和通常的数值的加减运算的意义是不一样的,以单元为单位。例如: 例二: char a[20]; int ptr=(int )a; //强制类型转换并不会改变a的类型 ptr++; 在上例中,指针ptr的类型是int*,它指向的类型是int,它被初始化为指向整型变量a。接下来的第3句中,指针ptr被加了1,

2017-01-26 19:46:33 168

原创 C语言指针(一)

int p; //这是一个普通的整型变量 int p; //首先从P处开始,先与结合,所以说明P是一个指针,然后再与int结合, 说明指针所指向的内容的类型为int型.所以P是一个返回整型数据的指针 int p[3]; // 首先从P处开始,先与[]结合,说明P是一个数组,然后与int结合,说明数组里的元素是整型的,所以P是一个由整型数据组成的数组 int p[3]; /

2017-01-26 19:38:31 114

原创 51单片机指令表(二)

助记符 指令说明 字节数 周期数(控制转移类指令)JMP @A+DPTR 相对DPTR 的无条件间接转移 1 2 JZ rel 累加器为0 则转移 2 2 JNZ rel 累加器为1 则转移 2 2 CJNE A,direct,rel 比较直接地址和累加器,不相等转移 3 2 CJNE A,#data,r

2017-01-26 19:26:18 660

原创 51单片机指令表(一)

助记符 指令说明 字节数 周期数(数据传递类指令)MOV A,Rn 寄存器传送到累加器 1 1 MOV A,direct 直接地址传送到累加器 2 1 MOV A,@Ri 累加器传送到外部RAM(8 地址) 1 1 MOV A,#data 立即数传送到累加器 2 1 MOV Rn,A 累加器传送

2017-01-26 19:23:09 2084

原创 进程和线程的区别

进程(process)是什么?狭义的定义:进程就是一段程序的执行过程。 广义定义:进程是一个具有一定独立功能的程序关于某次数据集合的一次运行活动,它是操作系统分配资源的基本单元。简单来讲进程的概念主要有两点:第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理

2017-01-24 21:39:01 143

转载 Linux下c语言多线程编程

线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多  为什么有了进程的概念后,还要再引入线程呢?使用多线程到底有哪些好处?什么的系统应该选用多线程?我们首先必须回答这些问题。  使用多线程的理由之一是和进程

2017-01-23 23:24:44 150

转载 Linux下文件编程

open(打开文件) 相关函数 read,write,fcntl,close,link,stat,umask,unlink,fopen 定义函数 int open( const char * pathname, int flags); int open( const char * pathname,int flags, mode_t mode);函数说明 参数pathname 指向欲打开的

2017-01-22 22:48:16 148

原创 网络编程基本理论知识

一、ISO/OSI参考模型 1、 OSI(open system interconnection)开放系统互联模型是由ISO(InternationalOrganization for Standardization)国际标准化组织定义的网络分层模型,共七层。2、 物理层(PhysicalLayer):物理层定义了所有电子及物理设备的规范,为上层的传输提供了一个物理介质,本层中数据传输的单位为

2017-01-21 23:38:35 285

原创 TCP的三次握手和四次挥手

首先先简单介绍TCP报文段的首部(握手需要用到的一些部分) ①序号字段——占 4 字节。TCP 连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。 ②确认号字段——占 4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号 ④同步 SYN —— 同步 SYN = 1 表示这是一个连接请求或连接接受报文。 ⑤终止 FIN

2017-01-20 23:27:35 177

原创 数据库系统概论基础知识点整理(二)

第三章 3.1 SQL概述 SQL集数据查询、数据操纵、数据定义和数据控制功能于一体. 其主要特点包括以下几个部分: ①综合统一 ②高度非过程化 ③面向集合的操作方式 ④以同一种语法结构提供多种使用方式 ⑤语言简洁,易学易用 3.3数据定义 数据定义功能包括模式定义、表定义、视图和索引的定义。 一个关系数据库管理系统的实例中可以建立多个数据库,一个数据库中可以建立多 个模

2017-01-19 22:09:16 694

原创 数据库系统概论基础知识点整理(一)

1.数据:数据是数据库中存储的基本对象。 2.数据库:存放数据的仓库。是长期存储在计算机内、有组织、可共享的大量数据的集合。 3.数据库管理系统:用户与操作系统之间的数据管理软件。是计算机的基础软件。 [用途:科学的存储数据,高效的获取和维护数据。功能:数据定义功能;数据组织、存储和管理; 数据操纵功能;数据库的事务管理和运行管理;数据库的建立和维护功能;其他功能。 4.数

2017-01-19 00:37:16 3792

转载 工程管理器——make

工程管理器是指管理工程的工具。假如我们面对是一个上百个文件的代码构成的项目,假如其中几个文件进行了修改,按照之前所学的gcc编译工具,就不得不把项目内所有的文件重新编译一遍,因为编译器并不知道哪些文件是最近更新的,但那些没有改动的源代码根本不需要重新编译,而只须把它们重新链接进去即可。所以,人们就希望有这样一款能够自动识别更新的文件代码并管理项目的软件,所以make工程管理器也就应运而生了。

2017-01-18 00:05:29 357

空空如也

空空如也

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

TA关注的人

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