自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

heyabo

天道酬勤

  • 博客(56)
  • 收藏
  • 关注

原创 简单扫雷游戏中的编程方法学 - python实现

一、说明该题来自国外大学的一个课堂作业,需求文档中要求采用一种自底向上(bottom-up)的编程方法,先实现最基本的函数,然后编写高层一点的函数来调用这些基本函数,先细节再慢慢抽象。为了引导学生,文档把程序细化为了六个level(每一个level,均有该level的功能说明,非常详细),先是基础功能,然后逐渐增加功能,逐步求精,直到整个功能完全实现。同时另一份文档还给出了简单的示例(如输入、

2014-04-20 16:50:40 7909 1

原创 Linux 静态库与共享库的使用

一、静态库1、概念:将所有相关的目标文件打包成为一个单独的文件-静态库文件,以.a结尾。静态库可作为链接器的输入,链接器会将程序中使用的到函数的代码从库文件中拷贝到应用程序中。一旦链接完成,在执行程序的时候就不需要静态库了。注1:由于每个使用静态库的应用程序都需要拷贝所用函数的代码,所以静态链接的文件会比较大。注2:在Unix系统中,静态库以一种称为存档(archi

2013-09-14 18:22:31 9025 24

原创 STL之priority_queue

std::priority_queue的定义、源码实现,以及测试实例

2013-07-23 14:48:38 5358 4

原创 读取文件行并分割行中字符串:C/C++以及python实现

一、问题描述给定一文件,依次读取文件中各行的字符串(字符串之间以空格分开)。例如:文件test.txt中有如下内容:first  second  third  forth  (第一行)fifth  sixth seventh   (第二上)... (其他行)则读取的内容依次为:   first  second  third  forth   fifth  sixth

2013-05-22 11:16:49 30437 8

原创 动态规划之理论基础(0)

一、基本概念1、定义:动态规划,dynamic programming,是通过组合子问题的解而得到整个问题的解。其中的Programming指的是tabular method,可译为:表格法 --- 填表和查表。2、应用:动态规划通常用于最优化问题,此类问题可能有很多种可行解,每一个解有一个值对应一组选择,即我们要从中作出一组合适的选择以得到一个最优(最大或最小)值的解(最优解也可

2013-05-15 16:45:10 2975

原创 三种基于比较的nlgn排序算法 - 归并-堆-快排 - C++实现

引言注:由于没有启用任何公示编辑器,为表示方便:以下涉及时间复杂度表示时,其渐近符号用以下符号代替:本文将介绍三种能在O(nlgn)时间内排序n个数的算法:归并排序、堆排序和快速排序。它们都是基于比较的排序,前两种算法在最坏情况下达到此上界,快速排序在平均情况下达到此上界。注:比较排序指排序结果中,各元素的次序基于输入元素间的比较。且可以证明:任何一个比较排序算法在最坏

2013-05-13 19:43:33 9285 13

原创 三种线性时间O(n)排序算法 - 计数-基数-桶 - C++实现

引言注:由于没有启用任何公式编辑器,为表示方便:以下涉及时间复杂度表示时,其渐近符号用以下符号代替:先来看一个定理:任意一个比较排序算法在最坏情况下,都需要做 $(nlgn)次的比较。其可用决策树模型加以证明,详见:《算法导论》第8章8.1节。该定理指出了比较排序的时间复杂度下界,即没有比较更少的了。故以下介绍的三种算法均不是基于比较的排序算法,其均对输入数据作了某

2013-05-13 03:38:45 3798

原创 日期加天数返回日期 - C语言实现

问题描述:已知日期,格式为mm-dd-yyyy(月-日-年,如2003年9月10日为:9-10-2003),给定一个天数(如100天),计算:从该日期算起,经过给定天数之后的日期。主要思想:1、当给定的天数days大于或等于365(或366)时,计算目标年份2、当给定的天数days小于365(或366)时,计算目标年份中的月份3、当剩余天数不足一月时,计

2013-05-10 21:29:51 11223 5

原创 初始化 struct 变量

1、C 语言中的 struct在C语言中,定义一个 struct 变量的同时不能对其(成员)进行初始化 ,即成员没有默认值。它只能在定义对象时,对对象的成员变量进行初始化。如:struct widget{ int a; int b; bool flag;};//1widget w = {0, 0, false};//or 2widget w;

2013-04-24 21:07:54 15883 1

原创 get year from a postgresql DATE

1、如果所在的列属性 mydate 本身为 DATE 类型,则使用:SELECT EXTRACT(year FROM mydate) FROM mytable;2、如果所在的列属性 mydate 为 varchar 类型,则先使用 to_date()将其转换为 DATE类型,然后在使用 EXTRACT year:SELECT EXTRACT(year FROM to_dat

2013-04-24 08:39:06 1739

原创 CentOS下安装PostgreSQL

一、配置 YUM 仓库修改原始的 yum 仓库配置:vim /etc/yum.repos.d/CentOS-Base.repo在[base]和[updates] 节(section)部分的尾部插入一行:exclude = postgresql* 用以取消从默认仓库安装和更新PostgresQL 。二、下载和安装PGDG RPM 文件注:本例子为在

2013-04-23 10:18:15 2273

原创 python 程序构架浅析

一、概念定义:通常的 Python 程序的构架是指:将一个程序分割为源代码文件的集合以及将这些部分连接在一起的方法。python的程序构架可表示为:一个python程序就是一个模块的系统。它有一个顶层文件(启动后可运行程序)以及多个模块文件(用来导入工具库)。注:标准库模块:python中自带的实用模块,也称为标准链接库。则个集合体大约有200多个模

2013-04-16 10:40:44 11163 7

原创 Effective shared_ptr

零、前言这篇文章本是作为:C++ 智能指针类的第二部分,但无奈那篇篇幅已经不能再长了,于是只好将其单独写成一篇,且把 shared_ptr 的循环引用放在这里写,这样稍微比较连贯一些。一、shared_ptr 的循环引用定义:所谓循环引用,可类比于这样的一棵树,它含有父亲结点指向孩子结点的指针,也有孩子结点指向父亲结点的指针,即父亲结点与孩子结点互相引用。可

2013-04-13 08:12:18 1905 2

原创 C++ 智能指针类

这篇文章主要来源于:codeguru网站的一篇文章:A TR1 tutorial:smart pointer  (详细介绍了C++的智能指针,尤其是shared_ptr)。众所周知,在 TR1 之前,C++标准库中的智能指针只有auto_ptr,但由于它的【排他所有权模式】(exclusive ownership model)导致了许多问题,为解决,C++TR1中引入了 boost 开源库中的

2013-04-12 10:10:18 21216 1

原创 具有返回值的函数之作为

首先解释一下文章标题,听起来有点拗口,意思是:具有返回值的函数,在调用时以及返回时都做了哪些事情(这些事情往往从代码表面是看不到的)。一、原理关于函数的返回值,先说下 return 语句,return 语句结束当前正在执行的函数,并将控制权返回给调用此函数的函数。有两种形式:1.return; //不带返回值的函数中(void)不带返回值的 return 语句只能用

2013-04-10 14:14:13 4586

原创 C++中如何修改const变量

一、结论声明:不同于C语言的const变量修改问题(可以通过指针间接修改const变量的值),这里只讨论C++ 里的const。C++ const 修饰符,表示常量,即如果以后保证不会修改则声明为const,否则若要修改,那一开始为什么还要声明为const呢?根据C++标准,对于修改const变量,属于:未定义行为(指行为不可预测的计算机代码),这样一来此行为取决于各种编译器的具体实现

2013-04-01 12:30:06 22095 5

原创 Windows 动态链接库 DLL 浅析

一、概念DLL:Dynamic Link Library,即动态链接库,这种库包含了可由多个程序同时使用的代码和数据。它是microsoft在windows操作系统中实现共享函数库概念的一种实现方式。其中windows中 一些作为DLL实现的文件有:ActiveX控件(.ocx)文件:如windows上的日历控件。控制面板(.cpl)文件:控制面板中的每一项都是一个专用的DLL

2013-03-26 17:51:54 38280 3

原创 c++类static成员

由题目,这里只讨论类中的static作用(类的静态成员),即两点:static数据成员 和 static成员函数。静态成员的提出:为了解决数据共享问题。当然全局对象也可以实现数据共享,但相比,static有以下两个优点:(1)封装性:static成员可以是私有成员,而全局对象是全局的,一般用户代码就可以修改这个值。(2)避免命名冲突:static成员的名字是在类的作用域中,因此

2013-03-16 21:47:02 4420

原创 C++11 error: ‘sleep_for’ is not a member of ‘std::this_thread’

背景:为了学习c++11的多线程和lamda表达式的特性,升级了gcc(从4.4.6到4.7.1),写完thread程序编译时却发现还是遇到了一些问题。原因:GCC没有定义这个宏:_GLIBCXX_USE_NANOSLEEP解决办法:编译时加上选项:-D_GLIBCXX_USE_NANOSLEEP或者:修改gcc的c++config.h文件去定义这个宏再或者:重新安装gcc且使

2012-12-25 16:36:38 7119

原创 C++11 'yield' is not a member of 'std::this_thread'

原因:GCC没有定义这个宏:_GLIBCXX_USE_SCHED_YIELD解决办法:编译时加上选项:-D_GLIBCXX_USE_SCHED_YIELD或者:长远打算修改gcc的c++config.h文件去定义这个宏。详情:'yield' is not a member of 'std::this_thread'  see also: C++11 error: ‘sleep_fo

2012-12-25 16:24:27 4033

原创 C++ RTTI

一、定义:RTTI:Run Time Type Identification ,运行时类型识别:指程序能够使用基类的指针或引用来检索这些指针或引用所致对象的实际派生类型。二、使用方式:C++中有两个操作符提供RTTI:(1)typeid 操作符:返回指针或引用所指对象的实际类型。(2)dynamic_cast 操作符:将基类类型的指针或引用安全地转换为派生类型的指针和引用。 注:此二操作符

2012-12-20 10:17:44 6048 2

原创 C++ time

一、三个概念:(1)UTC/GMT:Coorainated Universal Time:它是一个标准,最主要的世界时间标准,其以原子时秒长为基础,在时刻上尽量接近于格林尼治平时,也即格林威治标准时间(Greenwich Mean Time,GMT),在大多数场合,UTC与GMT等同(只是GMT不再由科学界精确定义)。注:为描述方便,本文中将UTC与GMT等同。(2)Local t

2012-12-17 16:52:17 11428 1

原创 《perl语言入门》之 第三章 列表与数组

前言        重温一下perl中单复数的概念:标量代表单数;而列表与数组代表perl 中的复数。         定义:                   列表(list):指标量的有序集合。-------存储标量                   数组(array):存储列表的变量。--------存储变量                   以上二者均为有序集合,

2012-10-17 17:26:20 889

原创 《perl语言入门》之 第二章 标量数据

前言:        定义:单复数概念----标量即单个事物,perl 用标量(perl 中最简单的一种数据类型)来称呼单件事物。 对大部分的标量来说,要么是数字,要么是由字符组成的串(perl 中不存在单个字符的概念,一个字符串整体就是单个事物)。        关联:而标量之间又可以使用操作符(比如加法或字符串连接)来关联,产生的结果也是一个标量。        来源和去处:标量可

2012-10-16 17:24:46 1590

原创 Troubleshooting

名词解释:    toubleshooting,有道在线词典的解释是:解决纷争;发现并解决故障。再来看一下维基百科的解释:Troubleshooting is a formof problem solving, often applied torepair failed products or processes. It is a logical, systematic search

2012-10-13 13:44:06 11034 4

原创 Perl命令行参数

perl语言提供了一些常用的命令行参数,让程序员很方便地在命令行写出简单的程序:1.perl五大常用命令行参数介绍:http://developer.51cto.com/art/201007/213913.htm其中,详细地关于perl在Linux下修改文件的操作:2.可参见:perl修改liunx文件:http://linux.chinaitlab.com/Perl/33138.

2012-10-10 13:57:52 2173

原创 CentOS网络配置解决方案

关于centos网络配置的方法,网上文档很多,但基本上都是一些操作命令,原理和解释则很少提到,而且某些文章有些地方还是需要商量的(估计是转载的,作者自己也没有实践过)。故,重新总结一下,分三个部分:理论基础、上机实践和原因阐述。注:实践环境:虚拟机登陆方式:PuTTYOS版本:centOS6.3上网方式:bridge 一、理论基础(急于解决问题的读者这个部分可以略过,直

2012-10-01 22:23:38 51533 3

转载 SMTP via Telnet

利用telnet发送email,并通过编写expect 脚本实现自动发送

2012-09-29 19:20:46 671

转载 DNS Lookup command:host和dig

Linux / UNIX: DNS Lookup Command

2012-09-29 19:17:12 809

转载 电脑的远程唤醒和关机

1 .电脑的远程唤醒和关机(上)2.电脑的远程唤醒和关机(中)3.电脑的远程唤醒和关机(下)

2012-09-29 19:13:45 881

转载 SMTP Error code

点击:SMTP Error Messages

2012-09-29 19:07:37 830

原创 Anti-spam相关知识汇总

1.名词解释:即反垃圾邮件。详见维基百科:垃圾邮件  反垃圾邮件技术2.常用的四种anti-spam技术3.RBL技术:     RBL即:Real-time Blacklist:实时黑名单列表,或称:动态黑名单列表,是一种anti-spam技术。     3.1 RBL原理和使用:http://www.bitscn.com/netpro/firewall/200709/11400

2012-09-29 17:29:14 2244

转载 Why LD_LIBRARY_PATH is bad

Why LD_LIBRARY_PATH is bad by David Barr.

2012-09-20 18:56:03 743

转载 linux下动态共享库搜索路径

Linux下动态共享库加载时的搜索路径详解

2012-09-19 09:59:59 618

转载 Win7下安装VC6.0完美解决方案

转载至:http://www.cctry.com/thread-16510-1-1.html一。彻底解决兼容问题:Windows 7下载安装 Visual C++ 6.0(VC6) 全程图解 网上成千上万的诸如 “有没有Win7兼容的VC6的下载”、“Win7下Visual C++ 6.0不兼容问题” 之类的问题,多数意思是VC6和Win7不兼容,而现在不少学校或是考试

2012-09-09 19:46:14 9290

转载 关于管道的popen函数

1. popen函数英文介绍(文章中描述一个函数的格式很好,值得借鉴!)2. popen函数中文介绍:3. popen函数的使用(其中的例子很经典!):注:通过此管道方式,进程之间的交换的数据只能通过标准I/0进行。附:一些简单的文件操作

2012-08-31 19:30:13 657

原创 关于Linux 子系统的三张图

今天由于要做一个进程间通信的小程序,我选择了pipe,休息之余想进一步了解一下Linux各子系统之间的关系,于是就请教了Bill,他给推荐给我三张图片,顿时对于我这个菜鸟,关于Linux的整体有个清晰的认识,且学习之余可以有个宏观的把握,有提纲挈领只用,故分享如下:1.Simplified Linux kernal diagram in form of a matrix map

2012-08-31 18:36:54 1731

原创 error: cast from ‘char*’ to ‘int’ loses precision

编译时出现错误:        error: cast from ‘char*’ to ‘int’ loses precision原因:程序中存在char* addrCom; addrCom= ......//赋值 if(-1 == (int)addrCom) //导致编译出错 { ...... } 上面是隐式转换,将其改为标准C++显示类型转换:static_c

2012-08-31 09:33:55 22279 1

转载 linux下共享内存的实现

1 Linux进程间通信--共享内存方式  (含实例)2. 建立共享内存---->shmget()介绍:3. 关于ftok

2012-08-30 14:52:10 736

转载 一些头文件

1.stdlib.h简介(百度百科)2.fcntl.h 简介(Wikipedia)3.unistd.h 简介(opengroup)

2012-08-30 14:19:39 1242

空空如也

空空如也

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

TA关注的人

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