自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(215)
  • 资源 (6)
  • 收藏
  • 关注

原创 新博客地址

由于工作原因更新博客地址新博客地址

2017-03-02 14:29:00 722

转载 虚拟化技术与容器技术

作为一种部署应用程序的全新方式,容器技术在短时间内获得了广泛关注,但是这种技术同样存在某些限制,并且和虚拟机存在本质上的不同。       虚拟化技术已经改变了现代计算方式,它能够提升系统资源使用效率、消除应用程序和底层硬件之间的依赖关系,同时加强负载的可以移植性和安全性,但是hypervisor和虚拟机只是部署虚拟负载的方式之一。作为一种能够替代传统虚拟化技术的解决方案,容器虚拟化技

2016-08-06 19:16:47 3728

原创 开源软件的安装

近期在研究mesos--开源的分布式框架,在安装的时候编译时花费了很长时间,同时发现这些开源的软件安装方法都差不多,一般都遵循以下几步:1.使用wget命令下载源代码的压缩包,一般都是.tar.gz格式的。当然,如果你已经安装了git,可以使用git clone命令从github上下载,这样可以不用解压。命令如下:tar -zvxf XXX.atr.gzgit clone URL2.

2016-07-24 20:05:37 3194 1

原创 Linux上配置vim

近期想在linux上用vim编写代码,所以现试着配置vim,在网上找了两篇教程来配置简单的vim开发环境:linux vim配置文件vim插件:显示树型目录插件NERDTree安装和使用通过上面两个教程,我的.vimrc文件如下:"""""""""""""""""""" 显示相关 """"""""""""""""""""set shortmess=atI " 启动的时候不显示

2016-06-28 00:12:03 631

转载 FTP主动模式和被动模式的区别

转自:http://limssb.blog.163.com/blog/static/14730437201312582915941/基础知识:FTP只通过TCP连接,没有用于FTP的UDP组件.FTP不同于其他服务的是它使用了两个端口, 一个数据端口和一个命令端口(或称为控制端口)。通常21端口是命令端口,20端口是数据端口。当混入主动/被动模式的概念时,数据端口就有可

2016-06-04 08:33:50 845

原创 使用Nginx负载均衡

近期尝试使用Nginx做负载均衡,所使用的服务器一个是我自己的腾讯云服务器,另一个是吉林大学的服务器,采用默认的轮询算法实现负载均衡。配置文件设置如下:#用户组 用户#user nobody;#工作进程,根据硬件调整worker_processes 1;#错误日志#error_log logs/error.log;#error_log logs/error.log

2016-05-23 15:21:14 464

原创 使用Nginx缓存网页

这几天尝试使用Nginx服务器,查看了该服务器的用途。发现该服务器可以用来实现反向代理和负载均衡等功能,自己通过查找资料实现了缓存网页的功能,下面是我的Nginx的配置文件的设置,配置文件的路径为:/usr/local/nginx/conf/nginx.conf下面有两篇关于nginx.conf的详细介绍:nginx.conf的完整配置说明Nginx安装及配置文件nginx.conf详

2016-05-03 22:22:19 937

原创 交换两个整数

今天写程序的时候回想起曾经好像在那见过没有使用中间变量进行两个整数的交换,马马虎虎地记得那时通过加减法来实现的,所以就查了一下资料,果然存在这这种方法,代码如下:void swap1 (int& x,int& y){ x=x+y; y=x-y; x=x-y;}void swap2 (int &x,int &y

2016-04-07 10:36:38 613

原创 127.Word Ladder

昨天晚上在LeetCode随便选了一道题写会儿代码,选中了Word Ladder,这道题刚开始只是有一点思路,不知道具体往下怎么做,先看看题吗要求如下:Given two words (beginWord and endWord), and a dictionary's word list, find the length of shortest transformation sequ

2016-03-31 11:07:23 788

原创 1.Two Sum

今晚看完天下足球之后,在leetcode上最一道题,于是选择了第一道题Two Sum,题目的叙述如下:Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input wou

2016-03-28 23:05:05 406

原创 179.Largest Number

近期开始在LeetCode上开始刷题,第一道题是Largest Number,题目内容如下:Given a list of non negative integers, arrange them such that they form the largest number.For example, given [3, 30, 34, 5, 9], the largest for

2016-03-27 14:34:09 479

原创 Linux的并发套接字编程

近期学习了并发套接字编程,通过查找资料发现,并发套接字编程可以通过三种方式来实现:1.多线程2.多进程3.多路复用在上一篇博客中,我介绍了简单的socket模型,并且利用多进程实现了并发套接字编程。但是,我发现利用多进程实现的并发套接字编程需要很多的资源并且效率也不是特别的高,所以,下面来介绍一下通过多路复用实现的并发套接字,采取这种方式系统内核缓冲I/O数据,当某个I/O准备好后

2016-03-24 18:25:54 921

原创 字符串匹配

前几天看书,书中有一道联系题:编写一个函数,在该函数中的第一个参数中进行查找,并返回匹配第二个参数所包含的字符的数量。然后,第一种想法就是使用做笨的方法,从第一个参数的字符串从第一个字符开始到最后一个字符逐一进行匹配,为了写起来更简便一点,我借用了一些C语言的库函数,最终代码如下:#include#includeint count_chars( char const *str, char

2016-03-07 17:08:40 655

转载 C++中模板与用C语言中实现模板

1、模板的概念我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的调用重载函数。例如,为求两个数的最大值,我们定义MAX()函数需要对不同的数据类型分别定义不同重载(Overload)版本。//函数1.int max(int x,int y){  return(x>y)?x:y ; }//函数2.

2016-03-05 10:02:16 5978

转载 Linux的SOCKET编程详解

1. 网络中进程之间如何通信进 程通信的概念最初来源于单机系统。由于每个进程都在自己的地址范围内运行,为保证两个相互通信的进程之间既互不干扰又协调一致工作,操作系统为进程通信提供了相应设施,如UNIX BSD有:管道(pipe)、命名管道(named pipe)软中断信号(signal)UNIX system V有:消息(message)、共享存储区(shared memory

2016-02-29 15:00:05 792

原创 Stack smashing detected

今天写程序时发现一个新的错误:Stack smashing detected,这个错误以前没有遇到,所以先上网查了一下,并记录下来解决这个问题的过程。首先这个程序的源代码如下,这个程序是用来求解1000以内的素数。#include#define TRUE '1'#define FALSE '0'int main(int argc, char const *argv[]) {

2016-02-02 14:39:43 4477

原创 数组名和指针

今天自己尝试写了一个小程序,但是运行时发生错误,就简单的回顾了一下C语言中的数组和指针,下面是这个小程序修改之后的正确的版本以及部分注释。#includeint main(int argc, char const *argv[]) { char str[] = "sdfdsgfd";//此处不能够使用指针 char *pstr = str; while ( *pstr ) {

2016-02-01 16:06:37 528

原创 获取掩码

在C语言中,可以通过调用如下的函数获取掩码int creat_mask( int starting_bit, int ending_bit ){ /*为保证进行逻辑移位而不是算术移位,将掩码声明为无符号类型*/ unsigned int mask = (unsigned) - 1; mask >>= INI_BITS - (starting_bit - ending_bit + 1

2016-01-27 12:34:46 1466

转载 linux与windows回车换行符的区别

问题来源:“回车”(carriage return)VS  “换行”(line feed)在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。于是,研制人员想了个办法解决这个问题,就

2016-01-21 15:44:40 1052

转载 scanf详解

转自:http://blog.sina.com.cn/s/blog_4d99abae0100dpxt.html当读入发生错误,或者是到达文件尾,scanf就会返回EOF这个宏的值。while(scanf("%d%d",&a,&b)!=EOF),这个语句就是说,当读取没有到达文件尾的话,就不停的读取。scanf 函数的返回值反映的是按照指定的格式符正确读入的数据的个数。如果输入数

2016-01-21 14:41:50 1008

原创 处理文件

在头文件中提供处理问件的库函数。文件的两种类型:文本文件和二进制文件文本文件:将数据写入文本文件时,数据写入为字符,这些字符组成为数据行,在每一行的末尾用换行结束。如果写入的是二进制数据,例如int或者double类型,则先将其转化成字符类型,在写入文件二进制文件:将数据写入二进制文件时,总是写入一系列字节,与他在内存中的表现形式相同,例如double类型就是写入8个字节。总结

2016-01-14 00:13:28 531

原创 遍历数组并且删除其中某个元素

今天写课程设计的代码,在程序中有一部分代码涉及到遍历整个数组,并且检查数组中的每一个元素是否符合要求,对于不符号要求的数组元素删除之,刚开始的时候,就像平常写遍历数组的方式遍历,并且检查数组中的元素,对于不符合的删除它,代码片段如下:for (int i = 0; i < borrowList.size(); i++) { if(!( borrowList.get(i).getBroRe

2016-01-09 23:15:48 7340

转载 shell中的各种括号的使用方法

这里我想说的是几种shell里的小括号,大括号结构和有括号的变量,命令的用法,如下:1.${var} 2.$(cmd) 3.()和{} 4.${var:-string},${var:+string},${var:=string},${var:?string} 5.$((exp)) 6.$(var%pattern),$(var%%pattern),$(var#patter

2015-11-19 09:37:32 641

原创 Linux中使用正则表达式

正则表达式通过一个例子来学习正则表达式。现在有如下的一个data.txt文件:Harley is smartHarleyI like Harleythe dog likes the cat搜索以”Harley“开头的行:grep ‘^Harley’ data 搜索以”Harley“结尾的行:grep ‘Harley$’ data搜索整

2015-11-16 15:29:23 1059

原创 Vi 命令总结

使用vi编辑一个文件:vi filename    /*如果该文件存在,则打开;如果该文件不存在,则创建*/使用vi创建一个没有文件名字的文件:vi  /*在保存的时候指定文件的名字*/启动vim时,当以-C选项启动时,vim会尽可能向像vi一样,运行在兼容模式以只读方式打开文件:vi -R fliename      或者 view filename根据保存在临时文件中的文件来恢

2015-11-15 14:36:31 969

转载 Linux下各文件夹的含义

在 Linux系统里面,“分区”,被称作“挂载点”,简单明了的说,“挂载点”意思就是:把一部分硬盘容量,“分”成一个文件夹的形式,用来干什么事情。这个文件夹的名字,就叫做:“挂载点”。所以,和Windows有着本质上的超级大的区别,你在任何linux发行版系统里面,绝对不会看到C盘,D盘,E 盘这样的,你能看到的,只有“文件夹”形式存在的“挂载点”。      在Linux 系统里面,有一些已

2015-11-11 09:15:29 541

原创 状态模式

意图:使行为自动适应状态的改变,去掉if或者case语句结构图:使用场景:1.对象收到其他对象的请求时,根据自身的不同状态做出不同的反应2.一个操作中含有大量的条件分支语句,并且这些分支依赖于状态优点:1.通过增加State的子类可以容易的增加新的状态和转化2.状态转换的时候,Context类中只需要重新绑定一个State变量,无须重新赋值,避免内部状态不一致

2015-10-22 14:11:14 457

原创 根据基类指针判断指针指向的子类

近期突然自己想到了一个问题:如果我现在有一个基类,它有很多个子类。同时现在又有一个基类指针,它指向一个子类,但是我不知道其具体是哪一个子类,所以如果我想知道它实际指向哪个子类在java中可以有instanceof可以实现,而在C++中怎么实现呢?后来我想了一段时间,终于想明白了,在C++中如果想在运行而不是在编译的过程中获得对象的具体的类型,那么就必须要用到虚函数。其实虚函数的出现就可以理解为

2015-10-04 00:56:41 3656 1

转载 那些C++牛人的博客

现整理收集C++世界里那些“牛人”的个人博客。凡三类:一是令人高山仰止的大牛,对C++语言本身产生过深远的影响的人;二是C++运用炉火纯青的高手,有原创性的技术干货;三是中文世界里的C++牛人。C++大牛的博客Bjarne Stroustrup的博客: Bjarne Stroustrup’s HomepageBjarne Stroustrup,不认识的可以去面壁了,

2015-09-18 20:04:05 2235

原创 stackoverflow页面不正常

近期突然发现stackoverflow页面的页面加载之后显示不正常,于是就上网查了一下原因,最后得知是因为CDN被墙了的原因,结合网上提供的信息,自己试了一下,结果就成功了,方法如下:首先通过vim打开hosts文件,命令如下:sudo vim /etc/hosts然后输入密码,下面就是修改hosts文件了,在问件中添加如下的两行:190.93.247.58 cdn.sst

2015-09-18 09:29:29 927

原创 三种单例模式的C++实现

通过单例模式,可以做到以下三点:1.确保一个类只有一个实例被创建2.提供了一个对对象全局访问的指针3.在不影响单例类的客户端的情况下允许将来有多个实例延迟式:特点:延迟加载,也就是说直到实力类被用到的时候才会被加载C++代码:Singleton.h#ifndef __C__Review__Singleton__#define __C__Review__Sin

2015-09-10 00:25:24 623

原创 开始使用Unix

本人使用的Macbook pro md101,通过Mac的终端登录到Unix系统。登入Unix系统:首先在终端中输入login,然后终端会显示login:,然后输入用户标识,按return后,会显示Password:,输入密码即可登录,随后会显示上次登录的时间以及使用的终端,无论何时,你都要花时间检查一下,看看时间是否是你最近登录的时间,这样做是基于安全的考虑。这样以后,终端会显示机器

2015-09-09 09:24:54 542

原创 error: allocating an object of abstract class type

Qt中的报错;error: allocating an object of abstract class type通常是由于该类,有未实现的虚函数,需要实现。

2015-09-05 23:57:08 2539

原创 QMainWindow中的布局管理

给QWidget或者QDialog设置布局的时候方式很简单。创建好一个布局:mainLayout,然后不停地把各个控件往mainLayout里面放,最后调用setLayout(mainLayout)就行了。QMainWindow中使用这个方法的时候却不管用,因为QMainWindow是默认有layout的,所以再次设置layout会失效。会出现这种提示:QWidge

2015-08-30 00:51:33 3077

转载 QT中QWidget、QDialog及QMainWindow的区别

QWidget类是所有用户界面对象的基类。 窗口部件是用户界面的一个基本单元:它从窗口系统接收鼠标、键盘和其它事件,并且在屏幕上绘制自己。每一个窗口部件都是矩形的,并且它们按Z轴顺序排列。一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分。     QMainWindow 类提供一个有菜单条、锚接窗口(例如工具条)和一个状态条的主应用程序窗口。主窗口通常用在提供一个大的中央窗口

2015-08-29 20:15:03 1076

转载 如何在Mac上配置/使用Github

先简单介绍一下Git和Github,以下文字来源于维基百科。Git是用于Linux内核开发的版本控制工具。与常用的版本控制工具CVS,Subversion等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。Git的速度很快,这对于诸如Linux kernel这样的大项目来说自然很重要。Git最为出色的是它的合并跟踪(merge t

2015-08-23 22:38:57 493

转载 MySQL批量SQL插入性能优化

对于一些数据量较大的系统,数据库面临的问题除了查询效率低下,还有就是数据入库时间长。特别像报表系统,每天花费在数据导入上的时间可能会长达几个小时或十几个小时之久。因此,优化数据库插入性能是很有意义的。经过对MySQL innodb的一些性能测试,发现一些可以提高insert效率的方法,供大家参考参考。1. 一条SQL语句插入多条数据。常用的插入语句如:1234I

2015-08-17 22:06:15 628

原创 mysql命令

1.显示所有数据库show databases;2.创建数据库create database 数据库名3.使用数据库use 数据库名;4.显示所有表show tables;5.显示表的详细描述describe 表名;6.创建表creat table 表名;7.删除数据库drop database 数据库名8.删除表drop

2015-08-11 22:11:34 418

原创 Matlab连接数据库mysql

首先要安装mysql驱动程序包,详细步骤如下:Step 1: 将mysql-connector-java-5.1.7-bin.jar文件拷贝到......\MATLAB\R2009a\java\jar\toolboxStep 2: 到......\MATLAB\R2009a\toolbox\local目录下,找到classpath.txt文件,打开,并添加用来加载mysql的jdbc驱动语

2015-08-11 17:36:58 1364

转载 从 Qt 的 delete 说开来

在C++中学习过程中,我们都知道:delete 和 new 必须 配对使用(一 一对应):delete少了,则内存泄露,多了麻烦更大。Qt作为C++的库,显然是不会违背C++的前述原则的。可是:在Qt中,我们很多时候都疯狂地用new,却很少用delete,缺少的 delete 去哪儿了?!注:本文暂不涉及智能指针(smart pointer)相关的东西,你可以考虑 

2015-08-11 09:05:56 458

死锁环路判定的系统资源分配图约简算法的设计与实现

本程序采用java语言实现,通过输入资源的数量和种类以及进程的数量,然后人为的拖拽完成资源分配图,最后让约简算法动态的输出。

2015-10-20

基于Qt的2048游戏实现

基于Qt的2048游戏C++实现,采用MVC模式,界面模仿手机app实现

2015-10-02

汇编程序之文件操作

本程序涉及到基本的文件操作,打开文件,操作文件(将输入的文件字母全部转换成大写字母),关闭文件

2015-08-01

C++单例设计模式

C++单例设计模式: 单例模式也称为单件模式、单子模式,可能是使用最广泛的设计模式。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出,GUI应用必须是单鼠标,MODEM的联接需要一条且只需要一条电话线,操作系统只能有一个窗口管理器,一台PC连一个键盘。

2014-09-13

地址薄(姓名、email)

保存姓名和email,支持查找,增加,删除,排序功能

2014-08-26

分数整数计算器

输入格式为:2/-3 + 4;数和运算符之间有空格;可以显示几又几分之几

2014-07-25

空空如也

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

TA关注的人

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