自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 资源 (1)
  • 收藏
  • 关注

原创 spring ws 参数校验

https://stackoverflow.com/questions/15741592/how-to-customize-spring-webservices-payloadvalidatinginterceptor-response-messahttps://stackoverflow.com/questions/32771333/spring-ws-how-to-apply-interce...

2020-04-07 23:21:52 209

原创 汉诺塔问题

#include<iostream>using namespace std;void move(int n, char moveFrom, char buffer, char moveTo){ if (n == 1) { cout << moveFrom << " -> " << moveTo << endl; ...

2020-03-15 19:21:44 162

原创 正则表达式校验时间格式

"^(" + "(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0...

2019-12-06 19:26:39 278

原创 指针、数组名与对数组名取地址、函数指针、auto关键字、回调函数与代理模式(二)

对linux中signal函数的理解:signal接受两个参数,一个代表需要被捕捉的特定的信号的整数值,另一个是指向用户提供的函数的指针,该函数用于处理被捕捉到的信号,其参数为一个int该参数用于区分不同的信号,返回值为void;设sfp为指向信号处理函数void sigFunc(int)的指针,则*sfp就代表了信号处理函数,则sfp可以被调用,即,有void(*sfp)(int),sfp的...

2019-10-30 23:53:56 132

原创 指针、数组名与对数组名取地址、函数指针、auto关键字、回调函数与代理模式(一)

10.22

2019-10-28 23:50:02 200

原创 linux文件之ELF

ELFELF是一种用于二进制可执行文件、可执行文件、目标代码、共享库和核心转存储的标准文件格式.。ELF标准的目的是为软件开发人员提供一组可执行的二进制接口定义(ABI);ELF文件类型(1)可重定位的目标文件这是由汇编器生成的.o文件,经过链接器的处理后,生成一个执行的目标文件或一个可被共享的对象文件(.so文件),或使用ar工具将多个.o文件归档(archive)为.a静态库文件;...

2019-10-24 23:28:59 186 1

原创 一个简单的并发回射服务器

client.c#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <netinet/ip.h>#include <unistd.h...

2019-10-23 08:37:48 182

原创 多态、成员变量、成员函数与static_case关键字

c++

2019-10-19 22:02:56 211

原创 Docker入门与Linux文件挂载

概念;

2019-10-18 22:56:30 357

原创 c++对象的生命周期、static关键字、拷贝构造函数与单例模式

先看一个小程序:#include <iostream>using namespace std;class MyClass{public: MyClass(int a, int b); static int getSum(); private: int a; int b; static int sum;};MyClas...

2019-10-18 22:52:28 459

原创 Systerm V消息队列

Systerm V消息队列:引用消息队列的句柄由msgget()调用返回的标识符,这点与其他形式I/O所使用的的文件描述符不同;通过消息队列的通讯时面向消息的,即读者接收由写者写入的整条消息;除包含的数据外,每条消息还可以有一个用整型表示的类型,从消息队列中读取的消息既可以按照先进先出,也可以根据类型来读取消息;创建System V消息队列id = msgget(key, IPC_C...

2019-10-07 20:12:05 527

原创 使用Systerm V消息队列实现文件服务器应用程序

创建System V消息队列id = msgget(key, IPC_CREAT | S_IRUSR | S_IWUSR);if(id == -1) errExit("msgget");msgget完成下列某个操作之一:使用给定的key创建一个新的IPC对象并返回一个唯一的标识符;返回一个拥有给定key的既有IPC对象;svmsg_file.h#include <sys...

2019-10-07 11:47:55 197

原创 获取时间

#include "unp.h"int main(int argc, char *argv[]){ int sockfd, n; char recvline[MAXLINE + 1]; struct sockaddr_in servaddr; if(argc != 2) err_quit("usage: a.out <IPadd...

2019-09-14 11:38:57 131

原创 可变参函数的用法

可变参函数#include <stdio.h>#include <stdarg.h>void func(int num, ...){ int after = 0; va_list v; //指针类型 va_start(v, num); printf("*v = %d\n", *v); for(i...

2019-09-11 23:48:50 136

原创 翻转链表

输入一个链表,反转链表后,输出链表的所有元素。 https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca?tpId=13&amp;tqId=11168&amp;tPage=1&amp;rp=1&amp;ru=/ta/coding-interviews&amp;qru=/ta/coding-interviews/quest...

2019-09-10 23:06:21 75

原创 红黑树

定义:由红、黑两类节点组成的BST (统一增设外部节点NULL,使之成为真二叉树) 树根:必为黑色外部节点:均为黑色 其余节点:若为红,则只能有黑孩子外部节点到根:途中黑色节点数目相等 插入...

2019-09-10 23:03:43 89

原创 消息队列

#include <stdio.h>#include <mqueue.h>#include <errno.h>#include <unistd.h>#include <fcntl.h> #define MODE (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH) struct mq_attr ...

2019-09-02 23:40:30 161

原创 vim的基本操作

linux中VI创建一个文件并编辑,怎样用命令的方式在末行模式下打开另一个新的文件?vi filename1 ###进入编辑模式:e filename2 #####末行模式打开另一个新的文件:open file ###可以再打开一个文件,并且此时vim里会显示出file文件的内容。同时显示多个文件::split:vsplit在文件之间切换Ctrl+6—下一个文件:...

2019-09-02 22:50:23 81

原创 getopt函数

#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>#include <sys/types.h> int main(int argc, char *argv[]){ extern char *optarg;...

2019-08-29 23:53:56 937

原创 面向对象编程风格

Thread.h :#ifndef _THREAD_H_#define _THREAD_H_#include&amp;lt;pthread.h&amp;gt;class Thread{public: Thread(); virtual ~Thread(); void Start(); void Join();private: static void*...

2019-08-29 23:09:10 112

原创 KMP

1、蛮力匹配: 版本1:版本2: 效率分析:最好情况:O(m)最坏情况:O(m * n)2、KMP算法算法 next表实例 next表构造(仅取决于模式串) 哨兵 next[0]=−1;next[0]=−1;next[0] = -1; next[j+1]&lt;=next[j]+1next[j+1]&lt;=next[j]+1next[j +...

2019-08-29 23:08:45 83

原创 一个简单的程序

一个简单的Hello, Concurrent World程序:#include&lt;iostream&gt;#include&lt;thread&gt;using namespace std;void hello(){ cout &lt;&lt; "Hello Concurrent World\n";}int main()//初始线程{ thread t...

2019-08-29 23:07:49 283

原创 牛牛的背包问题(网易2018春招)

牛牛准备参加学校组织的春游, 出发前牛牛准备往背包里装入一些零食, 牛牛的背包容量为w。 牛牛家里一共有n袋零食, 第i袋零食体积为v[i]。 牛牛想知道在总体积不超过背包容量的情况下,他一共有多少种零食放法(总体积为0也算一种放法)。 输入描述: 输入包括两行 第一行为两个正整数n和w(1 &lt;= n &lt;= 30, 1 &lt;= w &lt;= 2 * 10^9)...

2019-08-29 23:07:16 91

原创 牛牛找工作

牛牛找工作为了找到自己满意的工作,牛牛收集了每种工作的难度和报酬。牛牛选工作的标准是在难度不超过自身能力值的情况下,牛牛选择报酬最高的工作。在牛牛选定了自己的工作后,牛牛的小伙伴们来找牛牛帮忙选工作,牛牛依然使用自己的标准来帮助小伙伴们。牛牛的小伙伴太多了,于是他只好把这个任务交给了你。 输入描述: 每个输入包含一个测试用例。 每个测试用例的第一行包含两个正整数,分别表示工作...

2019-08-29 23:06:49 71

原创 伸展树

1、局部性 刚被访问过的数据极有可能很快被再次访问; 2、逐层伸展 节点v一旦被访问,随即转移至树根 3、最坏情况 4、改进 当子孙同侧时效果最好关键:从祖父节点开始旋转而不是逐层伸展 实例 折叠效果:一旦访问坏节点,对应路径的长度随即减半最坏情况不致持续发生分摊为log(n)log(n)log(n)实现 当前节点作为_...

2019-08-29 23:05:05 80

原创 平衡二叉树(AVL树)

平衡因子 失衡与重平衡 (1)插入:可能使其多个祖先节点失衡 (2)删除:最多只有一个祖先失衡 插入操作 (1)单旋 不改变其祖先的高度,即恢复插入数据前的平衡状态 (2)双旋:断开前先保存其指向的节点;先向下探后上探;(3)实现插入 删除 zig(g)失衡节点 (1)单旋 (2)双旋 (3)实现 旋转实现: 3 + 4重构...

2019-08-29 23:04:39 71

原创 等价BST

中序遍历序列相同 两点原则: 1、上下可变:联接关系不尽相同,承袭关系可能颠倒 2、左右不乱:中序遍历序列完全一致,全局单调非降

2019-08-29 23:03:39 73

原创 BST

算法实现 - 查找算法(递归实现) hot参数:记录当前接受访问的非空节点查找成功时,返回指向目标节点的父节点; 失败时返回NULL 统一语义 插入算法(忽略重复元素) 复杂度:O(h)O(h)O(h)-删除算法removeAt分两种情况 (1)若某一子树为空,则将该节点替换为其子树; (2)左右子树均不为空 将其替换为其中序遍历时的直接...

2019-08-29 23:02:35 79

原创 红黑树

定义:由红、黑两类节点组成的BST (统一增设外部节点NULL,使之成为真二叉树) 树根:必为黑色外部节点:均为黑色 其余节点:若为红,则只能有黑孩子外部节点到根:途中黑色节点数目相等 插入...

2019-08-29 22:59:01 86

原创 三种工厂模式

#include&lt;iostream&gt;#include&lt;memory&gt;#include &lt;exception&gt;using namespace std;class Operation {public: Operation() : A(0), B(0) {} double GetA() const { return A; } dou...

2019-08-29 22:56:55 74

原创 机器人的运动范围

地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?回溯法:bool check(int x, ...

2019-08-29 22:54:52 68

原创 单例模式

单例模式保证一个类中只有一个实例,并提供一个访问它的全局访问点;实现方法 单例模式的类只提供私有的构造函数; 该类提供了一个静态的公有的函数用于创建或获取它本身的静态私有对象; 类定义中含有一个该类的静态私有对象懒汉式:第一次被引用时才将自己实例化class Singleton {public: Singleton(const Singleton&a...

2019-08-29 22:54:02 84

原创 进程间通信

常用方法信号 管道 消息队列 与管道的区别: 管道是通过父进程,帮子进程建立好的通道,且 数据是字节流(不是结构化的数据) 共同点: 有buffer的限制共享内存 ...

2019-08-29 22:53:24 71

原创 死锁与银行家算法

安全序列(死锁避免) -对于p1有Need &lt; V,则可以结束,释放其拥有的资源死锁检测 缺点:开销大

2019-08-29 22:52:41 189

原创 哲学家就餐问题

问题分析:将就餐看做互斥事件改进 将哲学家的状态作为互斥事件 注意test_take_left_right_frok()中的v操作

2019-08-29 22:52:08 134

原创 读者-写者问题

使用信号量实现读者优先 使用管程实现读者-写者问题(写者优先)

2019-08-29 22:51:30 260

原创 双栈排序(vector的使用)

请编写一个程序,按升序对栈进行排序(即最大元素位于栈顶),要求最多只能使用一个额外的栈存放临时数据,但不得将元素复制到别的数据结构中。给定一个int[] numbers(C++中为vector&lt;int&gt;),其中第一个元素为栈顶,请返回排序后的栈。请注意这是一个栈,意味着排序过程中你只能访问到第一个元素。 https://www.nowcoder.com/practice/d0d0...

2019-08-29 22:50:54 95

原创 二分查找

旋转数组的最小数字: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 https://www.nowcoder.com/profile/648947/codeBoo...

2019-08-29 22:48:57 72

转载 线程同步的四种方式(二)

信号量信号量是一个非负整数(车位数),所有通过它的线程/进程(车辆)都会将该整数减一(通过它使得资源被使用了1个),当该整数值为零时,所有试图通过它的线程(车辆)都将处于等待状态。在信号量上我们定义两种操作: Wait(等待函数) 和 Release(释放函数)。当一个线程调用Wait操作时,它要么得到资源然后将信号量减一,要么一直等下去(指放入阻塞队列),直到信号量大于等于一时。Releas...

2018-09-29 15:37:22 220

转载 线程同步的四种方式(一)

互斥对象首先我们需要创建CreateMutex一把互斥对象,我们可以指明当前线程是否拥有它,互斥对象完全就像一把钥匙一样,我们用WaitForSignalObject来等待这把钥匙,但是这把钥匙被等到并且使用后必须释放-----ReleaseMutex ,不然别人永远无法等到。这样从等待到释放中间的代码段永远都是只有一个线程在执行,也就形成了互斥控制。当然互斥对象的句柄是要关闭的CloseHa...

2018-09-18 23:56:22 738

CppPrimer练习题答案

CppPrimer练习答案

2017-08-06

空空如也

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

TA关注的人

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