自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

sweetdark的专栏

除了知道自己的无知,我什么都不懂。即使懂了,又未必能够灵活的应用这些知识。路漫漫其修远兮,吾将上下而求索!

  • 博客(52)
  • 资源 (7)
  • 收藏
  • 关注

转载 开发者拒绝写技术博客的常见理由

常有人跟我讨论我在blog上发布过的博文,有时候他们还希望我来撰写某些文章。在讨论的过程中,我几乎总是会问为什么你自己不开一个博客,或者为其他人的博客做些贡献呢?当我在引导他们为技术类的主题写一些博文时,极少有人对此感兴趣。我的母亲总是告诉我(以及她的学生们)每个人都有自己的故事。她说,写作可能是一种你不曾想到过的非常有益处的行为,直到你写的东西获得了其他人的喜爱和赞同。就像软件开发者为他

2012-07-15 07:50:50 675

转载 python的单例模式

#-*- encoding=utf-8 -*-print '----------------------方法1--------------------------'#方法1,实现__new__方法#并在将一个类的实例绑定到类变量_instance上,#如果cls._instance为None说明该类还没有实例化过,实例化该类,并返回#如果cls._instance不为None,直接返回c

2014-05-25 19:56:12 692

转载 python获取文件及文件夹大小

@1.获取文件大小使用os.path.getsize函数,参数是文件的路径。@2.获取文件夹大小,即遍历文件夹,将所有文件大小加和。遍历文件夹使用os.walk函数[python] view plaincopyimport os  from os.path import join, getsize    

2014-05-21 22:55:20 6458

原创 单向链表及其应用(C语言)

一、单向链表//list.h#ifndef LIST_H_#define LIST_H_#include typedef struct ListElement_ { void *data; struct ListElement_ *next;} ListElement;typedef struct List_ { int size; int (*match) (con

2012-12-16 16:20:39 1156

原创 递归

递归一、基本递归递归是一种强大的方法,允许一个问题以其自身越来越小的形式来定义自己。每次成功的调用都使得输入变得更加精细,使我们越来越接近问题的答案。举例:求n的阶乘n!递归的方式如下图:F(4) = 4*F(3) 递推 F(3) = 3*F(2) . F(2) = 2*F(1) . F(1) = 1 终止条件 F(2) =

2012-12-09 21:56:07 601

转载 禅道程序员的10条原则

英文原文:The 10 rules of a Zen programmer在一个阴雨的早上,我坐在桌子旁,开始想如何才能高效的工作。在我成为一个自由职业者之前,我有很长一段时间都很努力工作,但收效甚微。我在 2006 开始接触禅学。我马上意识到:古代的禅宗大师们几百年前早就已经知道现今的程序员应该如何工作。虽然我很讨厌“如何成为一个更好的程序员”之类的文章,但我仍旧想分享一

2012-11-30 22:18:09 499

原创 C++对象模型《Inside the C++ Object Model》

一、C++对象模型目前的C++对象模型是这样设计的。所有的nonstatic data members非静态成员数据,放在类对象中。所有的静态的数据成员,非静态函数,静态函数都放在类对象之外。虚函数则是通过以下的方式实现:每一个class产生一堆指向虚函数的指针,把指针放在一个表格中,这个表格被称为virtual table简称vtbl。类对象中存放一个指向vtbl表格的指针,

2012-11-30 22:01:47 969

原创 《Inside The C++ Object Model》临时对象

C++标准允许编译器对临时对象的产生有完全的自由度。T a, b;c = a + b;T operator+ (const T& a, const T&b);如果没有经过优化,则会产生临时对象。T tem; //不调用构造函数tem.operator+(a , b);c.operator=(tem);tem.T::~T();  //临时对象被摧毁而如下的操作:

2012-11-27 21:42:25 580

原创 “继承”与Data Member——《Inside The C++ Object Mod》学习笔记

Data语意学 ---------“继承”与Data Memberclass Point2D {public:     float _x, _y;     char _2d;};class Point3D : public Point2D{public:     float _z;};上面这两个对象的内存布局如下:如果是32位的操

2012-11-17 11:06:49 798

原创 多重继承与虚函数表的实现原理

在《c++程序设计语言中》有这么两道习题,是讨论多重继承的实现,分为继承自虚基类和非虚基类两种。使用VS编译了两段程序,查看VS的编译器的实现方式。#include using namespace std;class Base {public: virtual void f() {}};class A : public Base {public:

2012-11-06 20:16:28 2885

原创 c++顺序编译问题

#include #include #define NO_ASSIGN(T) T(const T& rhs); \ T& operator= (const T& rhs); using namespace std;class String { struct Srep; Srep *rep;public: class Cref; class Ran

2012-09-25 21:20:14 1164

转载 编码规范:大家都应该做的事情

我们在Google所做的事情中另外一个让我感到异常有效、有用的制度是严格的编码规范。在到Google工作之前,我一直认为编码规范没有什么用处。我坚信这些规范都是官僚制度下产生的浪费大家的编程时间、影响人们开发效率的东西。我是大错特错了。在谷歌,我可以查看任何的代码,进入所有谷歌的代码库,我有权查看它们。事实上,这种权限是很少人能拥有的。但是,让我感到惊讶的却是,如此多的编 码规范 ——

2012-09-25 20:15:08 1014

原创 MYCP cgcBase随手记

MYCP的CGCBase模块代码写的很好。各个接口是干吗用的,看函数名就一目了然了。如果学过Java,JSP,Servlet 的话对cgcRequest,cgcResponse这些类的功能应该挺熟悉的。其他的类都是辅助类,cgcString 是辅助类,用于转码。从Unicode转到UTF8,格式化输出等。格式化输出只是对vsprintf的一个封装。例: tstring cg

2012-09-25 20:11:47 1200

转载 程序员究竟该如何提高效率

“拖延症”这个名词近些年很火,似乎每个人都觉得自己的效率不高,很难集中注意力做好手头的事,那我们究竟该如何提高自己的工作效率呢,大牛来告诉你.  Aaron Swartz写过一篇很有名的文章,叫做"HOWTO: Be more productive",这篇文章写的实在是太好了,我看了好多遍,很赞同作者的观点。我借鉴了作者提到的一些方法并运用到自己的生活中,发现确实有效果,所以我愿意让更多的人看到这

2012-09-21 19:14:30 497

原创 VS2005下编译MYCP

MYCP是用于开发、集成、部署和管理大型分布式应用、网络应用和数据库应用的C++ WEB应用服务器。将C++的高效稳定和各种通讯标准 (HTTP/UDP/TCP/RTP等)引入WEB应用的开发、集成、部署和管理之中。MYCP拥有处理关键分布式应用系统问题所需的性能、可扩展性和高可用性MYCP是基于第三方库boost 实现的。我是用的是VS2005的编译环境,在VS2005的环境中安装B

2012-09-21 19:09:23 864

原创 C++简单的回调函数示例

回调函数就是自己写的一个函数,但是不能被显式的调用,而是把该函数的地址作为一个别的函数参数来引用,这样用来处理当一些事件发生时可以调用这个自己定义的回调函数,完成一些处理。#include #include using namespace std;void MouseDown() { cout << "mouse down" << endl;}void Mouse

2012-09-08 21:04:57 822

转载 VC中#pragma warning指令

该指令允许有选择性的修改编译器的警告消息的行为指令格式如下:#pragma warning( warning-specifier : warning-number-list [; warning-specifier : warning-number-list...]#pragma warning( push[ ,n ] )#pragma warning( pop )主要用到的警

2012-09-03 23:08:40 672

转载 王垠:如何掌握程序语言

学习程序语言是每个程序员的必经之路。可是这个世界上有太多的程序语言,每一种都号称具有最新的“特性”。所以程序员的苦恼就在于总是需要学习各种稀奇古怪的语言,而且必须紧跟“潮流”,否则就怕被时代所淘汰。作为一个程序语言的研究者,我深深的知道这种心理产生的根源。程序语言里面其实有着非常简单,永恒不变的原理。看到了它们,就可以在很短的时间之内就能学会并且开始使用任何新的语言,而不是花费很多功夫去学

2012-08-21 08:35:10 5862

原创 玩转C++名字空间

一、概要名字空间是一种描述逻辑分组的机制。也就是说,如果有一些声明按照某种准则在逻辑上属于同一个集团,就可以将它们放入同一个名字空间,以表明这个事实。名字空间就是为了表示逻辑结构。同时也避免了名字冲突。名字空间的声明和定义:namespace namespace-name {}PS:只有名字空间的声明定义与函数的定义后是不用分号;的,其余的都是要带分号的。二、使用声明和使用

2012-08-21 08:32:35 816

原创 C++程序设计语言之函数小结

一、函数的声明void print(void): //这是一个简单的函数声明,返回值为空,参数为空。二、函数的定义函数的定义,既函数的声明后接有函数体,函数只能定义一次。int print(int i) { cout 三、静态变量       在函数中定义一个静态变量,这个变量只被初始化一次。每次使用这个静态变量的值是上一次的值,该静态变量与函数本身无关,不依赖于函数而存在

2012-08-17 22:35:12 580

转载 编写好代码的10条戒律

0. DRY: 不要重复你自己(Don’t repeat yourself)DRY是一条最容易理解但又是相对比较难以应用的原则。它是指当你在两处或者更多的地方发现相似代码时,我们应当把它们抽象成一个新的函数,在之前重复的地方调用新的函数并带上适当的参数。DRY也许是最普遍的一条编程原则,我从未发现一个开发人员认为编写重复的代码是件好事。但是我发现一些开发人员在编写单元测试时忘记了这

2012-08-09 10:47:57 1096

转载 好程序需要你(至少)写两遍

最近这些年,越来越多的人开始转向敏捷开发。各种敏捷开发技术并不新鲜,大多是在80 和 90年代发展形成。但只是在最近这些年,程序员和(更重要的是)一些商业顾问,架构师,客户开始变得喜欢和拥抱敏捷开发。进化中的需求现在的一种普遍的认识是,在开始编码前,你不可能把所有的需求都写完备。这些需求的确定是一个逐渐发展进化的过程。使用短开发周期 /springts,我们一步步的开发程序,使用多

2012-08-09 10:47:02 622

转载 GNU make 指南

本文将首先介绍为什么要将你的C源代码分离成几个合理的独立档案,什么时 候需要分,怎么才能分的好。然后将会告诉你 GNU Make 怎样使你的编译和连 接步骤自动化。对于其它 Make 工具的用户来说,虽然在用其它类似工具时要 做适当的调整,本文的内容仍然是非常有用的。如果对你自己的编程工具有怀 疑,可以实际的试一试,但请先阅读用户手册。1) 多文件项目~~~~~~~~~~~~~~~~~

2012-08-09 10:45:15 509

转载 Linux进程通信

序linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的。而对Unix发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间通信方面的侧重点有所不同。前者对Unix早期的进程间通信手段进行了系统的改进和扩充,形成了“system V IPC”,通信进程局限在单个计算机内;后者则跳过了该限制,形成了基于套接口(so

2012-08-08 09:28:15 1261

转载 C++多进程并发框架

三年来一直从事服务器程序开发,一直都是忙忙碌碌,不久前结束了职业生涯的第一份工作,有了一个礼拜的休息时间,终于可以写写总结了。于是把以前的开源代码做了整理和优化,这就是FFLIB。虽然这边总结看起来像日记,有很多废话,但是此文仍然是有很大针对性的。针对服务器开发中常见的问题,如多线程并发、消息转发、异步、性能优化、单元测试,提出自己的见解。面对的问题从事开发工程中,遇到过不少问题,很多时候

2012-08-08 09:24:43 545

转载 有关读书求知的一些想法

有关读书求知的一些想法发布时间:2012-07-27 08:11     来源:Jun Yang     分类: 管理 都等你发言 :)分享到:在求知的过程中,我们经常会要面对这样,那样的诱惑。以读书为例,一部经典的好教材,想要把它读通,搞明白,弄扎实,除了在读的过程中理解作者想要描

2012-08-07 17:11:58 496

原创 泛型栈-C语言的简单实现

头文件stack.h #ifndef STACK_H_INCLUDED#define STACK_H_INCLUDEDtypedef struct { int elemSize; //记录所存储的类型的内存大小 int pos; //目前栈顶指针所处的位置 int allocLength; //已经分配的空间 void *ele

2012-08-07 16:54:34 750

转载 寻址方式

4. 寻址方式访问内存时在指令中可以用多种方式表示内存地址,比如可以用数组基地址、元素长度和下标三个量来表示,增加了寻址的灵活性。本节介绍x86常用的几种寻址方式(Addressing Mode)。内存寻址在指令中可以表示成如下的通用格式:ADDRESS_OR_OFFSET(%BASE_OR_OFFSET,%INDEX,MULTIPLIER)它所表示的地址可以这样计算出来:

2012-08-02 15:57:55 580

原创 C++虚继承

C++虚继承可以防止多重继承的二义性。 为了解决从不同途径继承来的同名的数据成员在内存中有不同的拷贝造成数据不一致问题,将共同基类设置为虚基类。这时从不同的路径继承过来的同名数据成员在内存中就只有一个拷贝,同一个函数名也只有一个映射。这样不仅就解决了二义性问题,也节省了内存,避免了数据不一致的问题。例子: #include using namespace std;class Parent

2012-08-02 08:25:21 425

原创 题解sizeof()

#include #include using namespace std;class A {public : void foo() { cout << "A foo" << endl;}private : int m_i;};class B : public A {public : virtual void foo() { cout << "B

2012-07-22 11:02:04 409

转载 优秀的开发者 vs. 糟糕的开发者

本文来自Totango的联合创始人兼CEO盖伊•尼尔帕兹(Guy Nirpaz),他在本文中列出了优秀的开发者和糟糕的(或还需努力的)开发者之间的区别。如果你认为使用“优秀”和“糟糕”来区分开发者不妥的话,也可以将这些看作是初级开发者和资深开发者之间的区别。但无论如何,多看看其他的优秀开发者(或资深开发者)是如何做的,对于自身技能、工作方式的提升有很大的帮助。文章内容如下:

2012-07-20 14:25:37 388

原创 const在C与C++中的区别

在C中const定义的变量表示了该变量的值是不能改变的。在C中,它总是占用内存,默认是全局符。C 编译器不能把const看成编译期间的常量。所以这么写是错误的:const int bufsize = 100;int buf[bufsize];bufsize占用了内存的某个地方,C编译器不知道它在编译时的值。C中可以这么写。const int bufs

2012-07-20 14:22:07 485

原创 简介C++ 异常处理

C++的异常处理机制有两个主要成分:异常的识别和发出,以及异常的处理方式。异常出现之后,正常程序的执行被挂起,于此同时,异常处理机制开始搜寻能够处理这一个异常的地点。异常处理完毕之后,程序的执行便会被激活,从异常处理点继续执行下去。抛出异常,可以抛出整数或字符串,或者自己定义的异常类。throw 32;throw "error";throw my_exception();

2012-07-15 07:48:41 449

转载 10 个免费的 C/C++ 集成开发环境

集成开发环境(IDE)可以给程序员提供很大的帮助。大多数的IDE包含编译器和解释器。例如微软的 Visual Studio 本身内置的编译器和解释就是很好的例子,Eclipse 是另一个很好的例子。鼓励程序员使用IDE的主要原因是开发软件应用程序的各个组成部分之间可方便的进行切换。一般一个特定的IDE是负责处理一种编程语言,但也有一些支持多种编程语言的 IDE,例如 NetBean

2012-07-07 11:39:07 1400

原创 EssentialC++ 以template进行编程

这一章通过讲解二叉树的template的实现过程,来讲解template的语法,以及一些需要注意的地方。首先了解一下二叉树的一些基本操作,二叉树支持插入,删除,遍历的操作。第一个安插至空白树的值,会成为此树的根节点。接下来的每个节点按特定的规则插入。如果小于根节点,就被置于左侧指数,大于根节点就被置于右子树。string类型按照字典排序。如下图遍历又分前序遍历,中序遍历,后序遍历。

2012-07-07 11:30:53 1937

原创 Essential C++ 第四章小结

随手画了一个图小结一下:下面是根据书中的例子写的一些代码:#include #include #include "Triangulate_iterator.h"using namespace std;static int arr[13] = {1,1,2,3,5,8,13,21,34,55,89,144,233};class Triangulate_iterator;

2012-07-01 20:44:50 570

原创 个人曾经出错问题小结。

细心,严密,严谨,耐心,不浮躁。(1)包含指针或引用的类,要重写拷贝构造函数,和赋值函数。不然是默认按成员拷贝很容易出错。(2)使用STL容器的时候,要小心iterator的失效问题:例如 vector::iterator it = v.begin(); for(int i = 0; i此时it可能已经失效,因为有可能v.push_back(i)会引起由于分配空间不足,而重新分

2012-07-01 20:35:33 414

转载 【转】给IT新人的15个建议:苦逼程序员的辛酸反省与总结 - 博客 - 伯乐在线

给IT新人的15个建议:苦逼程序员的辛酸反省与总结发布时间:2012-06-20 06:19     来源:Pozen     分类: 程序员, 管理 1 条评论 »分享到:很多人表面上看着老实巴交的,实际上内心比谁都好强、自负、虚荣、甚至阴险。工作中见的多了,也

2012-06-24 10:10:46 1855

原创 EssentialC++ STL容器一道小习题

练习3.1 写一个读取文本文件的程序,将文件中的每个单词存入map。map的key便是刚才所说的单词,map的value则是该单词在文本文件中出现的次数。再定义一份由“排除单词”组成的set,其中包含诸如 a,an,the,but,and,or之类的单词。在将某单词置入map之前,先确定该单词并不在“排除字集”中,一旦文本文件读取完毕,请显示一份单词列表,并显示各个单词的出现次数。你可以在显示单词

2012-06-24 10:09:28 664

原创 一个泛型算法的设计

从一个简单的需求开始,从一个vector中返回小于10的数的vector,那我们会写如下的函数:vector less_than_ten(vector& vec) {     vector result;     for(int i=0; i          if (vec[i]                result.push_back(vec[i]);

2012-06-21 20:48:31 565

VAX 支持VS2015

VS番茄辅助软件,可以直接使用,验证可用。请在此之前没有装过VA的插件。

2018-05-10

Python 文本处理教程

Python2.7版本的文本处理电子书,全面介绍如何快速处理字符串,正则表达式等

2018-05-10

json文件测试

json文件测试,json文件的描述等等信息

2014-11-26

2014 C++ reference

2014 C++ Reference资源的收集和整理。 内容从官网copy下来的,可以离线看。

2014-05-22

Linux一站式学习

各位想学习Linux的,想学习嵌入式的知识的 可以看看这个适合入门的电子书。 写的比较通俗易懂,理论和实践相结合。还有一定的习题。

2012-06-10

程序员面试宝典(完整版)

程序员面试必备宝典,涉及了很多经典的面试题。阐述了很多细节的问题。一本很不错的书。主要是C++ 语言描述的。

2012-06-06

commons-httpclient3.0.1

Jakarta Commons HttpClient =========================== Welcome to the HttpClient component of the Jakarta Commons project. See the docs directory, or visit us online at http://jakarta.apache.org/commons/httpclient for more information. See docs/status.html, or http://jakarta.apache.org/commons/httpclient/status.html for the status of the project.

2011-03-04

空空如也

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

TA关注的人

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