自定义博客皮肤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)
  • 收藏
  • 关注

转载 Linux 进程组,作业,会话的理解

1. 进程组每个进程除了有一个进程ID之外,还属于一个进程组。进程组是一个或多个进程的集合。通常,它们与同一作业相关联,可以接收来自同一终端的各种信号。每个进程组有一个唯一的进程组ID。每个进程组都可以有一个组长进程。组长进程的标识是,其进程组ID等于其进程ID。组长进程可以创建一个进程组,创建该组中的进程,然后终止。只要在某个进程组中一个进程存在,则该进程组就存在,这与其组长进程

2014-09-24 15:24:25 701

转载 java中import机制(指定import和import *的区别)

java中有两种包的导入机制,总结如下:单类型导入(single-type-import),              例如 import java.io.File;按需类型导入(type-import-on-demand),例如 import java.io.*;这里分析一下这两种导入类型的大致工作原理供大家参考。单类型导入比较好理解,仅仅导入一个public类或

2014-09-23 11:57:42 1497

转载 SHELL函数返回字符串的方法

shell的函数只能返回整数值,如果想让一个函数返回一个字符串的值一般有两种方法。         1.将返回值赋值给一个字符串         如:             get_config_field()             {                   get_config_field= `cat $1 | grep -v "#" | grep $2 |

2014-09-22 15:53:50 10334

转载 Python *与** 参数问题

问题:     Python的函数定义中有两种特殊的情况,即出现*,**的形式。     如:def myfun1(username, *keys)或def myfun2(username, **keys)等。解释:  * 用来传递任意个无名字参数,这些参数会一个Tuple的形式访问。   **用来处理传递任意个有名字的参数,这些参数用dict来访问。*应用:

2014-09-19 19:34:32 561

转载 C++函数返回值类型

C++语言的函数返回值类型可以分为内部类型和自定义类型两大类。    在函数返回内部类型中不能返回数组类型但可以返回指向数组的指针,同样也可以返回指向函数的函数指针。如果希望返回值可以作为左值(即可以放在赋值操作符左边的)那就必须返回引用类型。    而在函数返回自定义类型(即返回类类型)中根据是否可作为左值,返回值是否可调用成员函数的不同可分为以下四种情况。    T:返回类类型

2014-09-05 20:24:55 4989 1

转载 error: no matching function for call to 'std::basic_ifstream<char>::open(std::string&)

[cpp] view plaincopyprint?string filename = "1.txt";  ifstream fin;  fin.open(filename);  上述语句会产生如下错误:error: no matching function for call to 'std::basic_ifstream::open(s

2014-09-04 17:46:07 14114 2

转载 Python中的闭包

闭包这个概念在很多语言中都有涉及,本文主要谈谈python中的闭包。Python中使用闭包主要是在进行函数式开发时使用。一,定义python中的闭包从表现形式上定义(解释)为:如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包(closure).这个定义是相对直白的,好理解的,不像其他定义那样学究味道十足(那些学究味道重的解释,

2014-08-04 17:30:26 424

转载 httplib HTTP协议客户端实现

httplib 是 python中http 协议的客户端实现,可以使用该模块来与 HTTP 服务器进行交互。httplib的内容不是很多,也比较简单。以下是一个非常简单的例子,使用httplib获取google首页的html:[python] view plaincopy#coding=gbk  import httplib  conn 

2014-07-14 17:50:14 1069

原创 protobuf-2.5.0.tar.gz的下载与安装

hadoop使用protocol buffer进行通信,需要下载和安装protobuf-2.5.0.tar.gz。由于现在protobuf-2.5.0.tar.gz已经无法在官网https://code.google.com/p/protobuf/downloads/list中下载了,本人将protobuf-2.5.0.tar.gz上传到百度云盘供大家下载,地址: http://pan.baidu.com/s/1pJlZubT 。

2014-06-17 21:34:11 31483 10

原创 apache-maven-3.2.1的安装

maven 是一个项目管理和构建自动化工具,本文主要讲apache-maven-3.2.1的安装。

2014-06-16 19:26:22 3423

转载 python import与from...import....的区别

在python用import或者from...import来导入相应的模块。模块其实就一些函数和类的集合文件,它能实现一些相应的功能,当我们需要使用这些功能的时候,直接把相应的模块导入到我们的程序中,我们就可以使用了。这 类似于C语言中的include头文件,Python中我们用import导入我们需要的模块。eg:import sysprint('================Py

2014-06-05 17:44:08 2621

转载 理解inode

inode是一个重要概念,是理解Unix/Linux文件系统和硬盘储存的基础。我觉得,理解inode,不仅有助于提高系统操作水平,还有助于体会Unix设计哲学,即如何把底层的复杂性抽象成一个简单概念,从而大大简化用户接口。下面就是我的inode学习笔记,尽量保持简单。===================================理解inode一、in

2014-05-30 14:03:14 656

转载 让SecureCRT vi中显示多色彩

方法1:1.打开SecureCRT___选项__会话选项___仿真 右边的中端选择linux,把ANSI 颜色和使用颜色方案打上钩。2.选择外观,右边的使用颜色和闪烁都打上钩。3.重新连接使所该设置生效方法2:vi是没有颜色的,但是我们在linux的控制台下用vi编辑文件却能看到彩色这是因为安装了vim-enhanced的包

2014-05-30 10:26:42 2609

转载 linux date命令

Linux时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟。系统时钟是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的时钟,这个硬件时钟可以在BIOS中进行设置。当Linux启动时,硬件时钟会去读取系统时钟的设置,然后系统时钟就会独立于硬件运作。Linux中的所有命令(包括函数)都是采用的系统时钟设置。在Linux中,

2014-04-30 15:07:13 541

转载 getopt:命令行选项、参数处理

在写shell脚本时经常会用到命令行选项、参数处理方式,如:./test.sh -f config.conf -v --prefix=/home-f 为短选项,它需要一个参数,即config.conf, -v也是一个选项,但它不需要参数–prefix 是一个长选项,即选项本身多于一个字符,它也需要一个参数,用等号连接在shell中,可以用以下三种方式来处理命令行参数,每种方式都有自

2014-04-29 14:34:14 2094 1

转载 shell中单中括号和双中括号的区别

shell中单中括号和双中括号的区别1.["["是一个可执行程序,路径是"/usr/bin/["他与可执行程序"test"是等价的。例子:if [ 3 -eq 2 ] ; thenecho "==";elseecho "!=";fi;等价于:if /usr/bin/[ 3 -eq 2 ] ; thenecho "==";elseecho

2014-04-14 13:15:24 2530

转载 shell算数运算

((i=$j+$k)) 等价于 i=`expr $j + $k`((i=$j-$k)) 等价于 i=`expr $j -$k`((i=$j*$k)) 等价于 i=`expr $j \*$k`((i=$j/$k)) 等价于 i=`expr $j /$k`Let expressions 执行一个或多个表达式。表达式中的变量前不必有$.如果表达式中包含了空格或其他特殊字符,则必须引起

2014-04-09 19:48:17 547

转载 回车符和换行符区别

回车符和换行符区别回车符号和换行符号产生背景:     关于“回车”(carriage return)和“换行”(line feed)这两个概念的来历和区别。在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符

2014-03-31 11:52:10 1012

转载 接口回调

接口回调的例子:interface People{   void peopleList();}class Student implements People{   public void peopleList(){    System.out.println("I’m a student.");}}class Teacher

2014-03-20 14:08:07 506

转载 Linux dirname、basename 指令

一、dirname指令1、功能:从给定的包含绝对路径的文件名中去除文件名(非目录的部分),然后返回剩下的路径(目录的部分)2、用法:dirname filename例如下面几个例子(1)# dirname /etc/sysconfig/network-scripts/ifcfg-eth0/etc/sysconfig/network-scripts(2)# dirna

2014-03-19 15:49:53 582

转载 linux下如何设置环境变量PATH

Linux系统环境变量配置文件: /etc/profile : 在登录时,操作系统定制用户环境时使用的第一个文件 ,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。 /etc /environment : 在登录时操作系统使用的第二个文件, 系统在读取你自己的profile前,设置环境文件的环境变量。 ~/.profile :  在登录时用到的第三个文件

2014-03-19 14:24:26 701

转载 shell中的各种括号

在编写shell scripts时,经常会用到括号,各种括号,各种用法。一、括号、圆括号()1、单小括号。  ①命令组。括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格。  ②命令替换。等同于`cmd`,shell扫描一遍命令行,发现了

2014-03-10 18:10:13 502

转载 linux 使用中括号进行条件判断

“#”代表空格,不可缺少[# param1#op# param2 #]这种带比较操作符的形式,op左右必须使用空格隔开.如 [# “3”==”2” #]  这种缺少空格的写法会得到结果“true”,当然实际应为”false”.变量的引用应使用双引号括起来 [# -z “$name” #].*********************name="Ji

2014-03-10 17:51:53 805

转载 求两个长方形是否有交集

该长方形由左下角的坐标和右上角的坐标表示,现有两个长方形分别表示为(X11,Y11,X12,Y12)和(X21,Y21,X22,Y22)。主要解题思路如下:令minX=min(X11,X21);minY=min(Y11,Y21);maxX=max(X12,X22);maxY=max(Y12,Y22)。若minX

2013-10-21 01:57:19 1687

原创 给一个正整数N,打印NxN的蛇形矩阵(二) 之空间复杂度O(1)

当N=4时,对应的蛇形矩阵如下图:图 1将该蛇形矩阵中元素的坐标代替其元素值时,得到如图2的矩阵,此时横坐标i和纵坐标j的和m=i+j具有一定的规律。当m为偶数时,原矩阵(图1中矩阵)中的元素值沿左下方增大,当m为奇数时,原矩阵中的元素值沿右上方增大。图 2由于只能使用O(1)的空间复杂度,不能使用上篇博文中的方法。不过可以发现当m=N时,可重新将坐

2013-10-21 00:18:00 3987 3

原创 给一个正整数N,打印NxN的蛇形矩阵(一) 之空间复杂度O(NxN)

当N=4时,对应的蛇形矩阵如下图:图 1将该蛇形矩阵中元素的坐标代替其元素值时,得到如图2的矩阵,此时横坐标i和纵坐标j的和m=i+j具有一定的规律。当m为偶数时,原矩阵(图1中矩阵)中的元素值沿左下方增大,当m为奇数时,原矩阵中的元素值沿右上方增大。图 2打印蛇形矩阵的代码如下:void printSnakeOfN2(int N){ int* array=n

2013-10-20 22:51:31 2887

原创 二叉树层序遍历应用:要求将所有结点加上一个m_pNext指针,指向同层右侧的结点,右侧若无结点则指向NULL,写出其中的Connect函数。

该二叉树结点结构:struct TreeNode{ TreeNode* m_pLeft; TreeNode* m_pRight; TreeNode* m_pSibling; int m_nValue;}Connect函数的代码如下: TreeNode* Connect(TreeNode* root){ if(root==NULL) ret

2013-10-19 22:02:35 913

转载 strlen与sizeof的区别

strlen与sizeof的区别1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。该类型保证能容纳实现所建立的最大对象的字节大小。2.sizeof是算符,strlen是函数。3.sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''\0''结尾的。4.数组做sizeof的参

2013-10-15 00:56:11 416

转载 进程的状态转换

四种进程间的状态转换:进程的状态转换图1.就绪–>执行 2.执行–>就绪 3.执行–>等待  4.等待–>就绪一、进程的三种基本状态进程在运行中不断地改变其运行状态。通常,一个运行进程必须具有以下三种基本状态。就绪(Ready)状态当进程已分配到除CPU以外的所有必要的资源,只要获得处理机便可立即执行,这时的进程状态称为就绪状态。

2013-09-16 13:39:29 693

转载 二叉树的前序遍历、中序遍历和后序遍历及其算法

二叉树的基本的遍历规则有三种:前序遍历,中序遍历和后序遍历。对于每一种遍历,树中每个结点都要经过3次。前序遍历在第一次遇到结点时立即访问,中序遍历第二次遇到结点时访问,后序遍历则到第三次遇到结点时才访问。以一棵二叉树说明其三种遍历顺序:二叉树的前序遍历前序遍历:- + a * b – c d / e f中序遍历:a + b * c – d – e / f

2013-09-16 13:13:22 1032

转载 C++静态类成员

静态类成员包括静态数据成员和静态函数成员两部分。 一 静态数据成员: 类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员。和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则。同时,静态数据成员还具有以下特点: 1.静态数据成员的定义。 静态数据成员实际上是类域中的全局变量。所以,静

2013-09-16 13:03:18 742

转载 友元函数和友元类

采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口。但是,有时需要定义一些函数,这些函数不是类的一部分,但又需要频繁地访问类的数据成员,这时可以将这些函数定义为该函数的友元函数。除了友元函数外,还有友元类,两者统称为友元。友元的作用是提高了程序的运行效率(即减少了类型检查和安全性检查等都需要时间开销),但它破坏了类的封装性和

2013-09-16 12:36:35 593

转载 虚函数、纯虚函数详解

1.首先:强调一个概念        定义一个函数为虚函数,不代表函数为不被实现的函数。定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。       定义一个函数为纯虚函数,才代表函数没有被实现。定义他是为了实现一个接口,起到一个规范的作用,规范继承这个。类的程序员必须实现这个函数。 2.关于实例化一个类: 有纯虚函数的类是不可能生成类对象的,如果没有纯虚函数则可以。

2013-09-16 11:29:13 591

原创 堆排序的图解过程与其他比较排序算法视频地址

堆排序的图解过程如下:

2013-09-15 00:07:56 1711

原创 在python中编写socket服务端模块(二):使用poll或epoll

在linux上编写socket服务端程序一般可以用select、poll、epoll三种方式,本文主要介绍使用poll和epoll编写socket服务端模块。使用poll方式的服务器端程序代码:import socketimport selectimport Queueserver_address=('10.0.2.15',21345)server=socket.sock

2013-09-13 14:58:57 3750

原创 在python中编写socket服务端模块(一):使用select

本文介绍使用select编写socket服务端模块。服务器端程序代码:import socketimport selectimport Queueserver=('10.0.2.15',21345)#SOCK_STREAM(流套接字)、SOCK_DGRAM(数据报文套接字)、AF_INET(IPv4) sock=socket.socket(socket.AF_INET,so

2013-09-13 14:45:12 2052

转载 常见算法题

一、维护O(1)时间查找最大元素的栈问题描述:一个栈stack,具有push和pop操作,其时间复杂度皆为O(1)。设计算法max操作,求栈中的最大值,该操作的时间复杂度也要求为O(1)。可以修改栈的存储方式,push,pop的操作,但是要保证O(1)的时间复杂度,空间时间复杂度无要求。 可以创建一个类,类里有两个栈,一个栈S维持正常的push、po

2013-09-12 21:26:50 1462 2

转载 字符串匹配经典算法讲解

本系列文章主要介绍几种常用的字符串比较算法,包括但不限于蛮力匹配算法,KMP算法,BM算法,Horspool算法,Sunday算法,fastsearch算法,KR算法等等。本文主要介绍KMP算法和BM算法,它们分别是前缀匹配和后缀匹配的经典算法。所谓前缀匹配是指:模式串和母串的比较从左到右,模式串的移动也是从左到右;所谓后缀匹配是指:模式串和母串的的比较从右到左,模式串的移动从左到右。看得出来

2013-09-12 19:38:08 1117

转载 字符串匹配常用算法

字符串匹配(string match)是在实际工程中经常会碰到的问题,通常其输入是原字符串(String)和子串(又称模式,Pattern)组成,输出为子串在原字符串中的首次出现的位置。通常精确的字符串搜索算法包括暴力搜索(Brute force),KMP, BM(Boyer Moore), sunday, robin-karp 以及 bitap。下面分析这几种方法并给出其实现。假设原字符串长度M

2013-09-12 19:35:13 1000

转载 C++变量的存储类别(动态存储、静态存储、自动变量、寄存器变量)

一、动态存储方式与静态存储方式上一节已介绍了变量的一种属性——作用域,作用域是从空间的角度来分析的,分为全局变量和局部变量。变量还有另一种属性——存储期(storage duration,也称生命期)。存储期是指变量在内存中的存在期间。这是从变量值存在的时间角度来分析的。存储期可以分为静态存储期(static storage duration)和动态存储期(dynamic storage

2013-09-12 19:08:01 841

空空如也

空空如也

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

TA关注的人

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