<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[rangf的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/rangf</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; rangf]]></copyright><item><title><![CDATA[程序架构师设计师必须掌握的面向对象的程序设计原则]]></title><link>https://blog.youkuaiyun.com/rangf/article/details/50602322</link><guid>https://blog.youkuaiyun.com/rangf/article/details/50602322</guid><author>rangf</author><pubDate>Thu, 28 Jan 2016 17:47:42 +0800</pubDate><description><![CDATA[程序架构师设计师必须掌握的面向对象的程序设计原则
 
　　一个优秀的软件项目，除去优秀的界面设计和合理恰当的功能设计以外，其程序的架构设计也一定是优秀的，本文专门探讨面向对象的程序架构设计问题。这也是每一个想成为软件架构师的人必须面对和做好的。
 
　　我们说一般优秀的程序结构具有如下一些特征：
　　　　1、  高稳定性：包括代码逻辑清晰、严密，运行无错
　　　　2、  高性能：运行效]]></description><category></category></item><item><title><![CDATA[svn working copy locked]]></title><link>https://blog.youkuaiyun.com/rangf/article/details/49363381</link><guid>https://blog.youkuaiyun.com/rangf/article/details/49363381</guid><author>rangf</author><pubDate>Fri, 23 Oct 2015 16:47:01 +0800</pubDate><description><![CDATA[解法 1 :  右键svn-->clean up
解法 2 :  
     a、被lock的文件夹进入控制台 del lock /q/s
b、将部分在工程中打开的工作目录关闭(如vs、source insight等，一般c步有执行失败提示)
c、在根目录执行svn-->clean up
d、执行其它svn命令OK.


【转载解法】
SVN 本地更新时，由于一些操作中断更新，如]]></description><category></category></item><item><title><![CDATA[C++ STL的常见用法]]></title><link>https://blog.youkuaiyun.com/rangf/article/details/48753067</link><guid>https://blog.youkuaiyun.com/rangf/article/details/48753067</guid><author>rangf</author><pubDate>Sat, 26 Sep 2015 18:54:10 +0800</pubDate><description><![CDATA[Lists将元素按顺序储存在链表中. 与 向量(vectors)相比, 它允许快速的插入和删除，但是随机访问却比较慢.
assign() 给list赋值 
back() 返回最后一个元素 
begin() 返回指向第一个元素的迭代器 
clear() 删除所有元素 
empty() 如果list是空的则返回true 
end() 返回末尾的迭代器 
erase() 删除一个元素]]></description><category></category></item><item><title><![CDATA[socket是什么]]></title><link>https://blog.youkuaiyun.com/rangf/article/details/48751811</link><guid>https://blog.youkuaiyun.com/rangf/article/details/48751811</guid><author>rangf</author><pubDate>Sat, 26 Sep 2015 15:29:36 +0800</pubDate><description><![CDATA[Socket接口是TCP/IP网络的API，Socket接口定义了许多函数或例程，程序员可以用它们来开发 TCP/IP网络上的应用程序。

请参阅以下资料：
socket非常类似于电话插座。以一个国家级电话网为例。电话的通话双方相当于相互通信的2个进程，区号是它的网络地址；区内一个单位的交换机相当于一台主机，主机分配给每个用户的局内号码相当于socket号。任何用户在通话之前，首先要占有一部]]></description><category></category></item><item><title><![CDATA[undefined reference to 'pthread_create']]></title><link>https://blog.youkuaiyun.com/rangf/article/details/48751503</link><guid>https://blog.youkuaiyun.com/rangf/article/details/48751503</guid><author>rangf</author><pubDate>Sat, 26 Sep 2015 14:40:29 +0800</pubDate><description><![CDATA[线程编程编译是出现如下错误：
undefined reference to 'pthread_create'
undefined reference to 'pthread_join'

问题原因：
    pthread 库不是 Linux 系统默认的库，连接时需要使用静态库 libpthread.a，所以在使用pthread_create()创建线程，以及调用 pthread_atf]]></description><category></category></item><item><title><![CDATA[sql优化]]></title><link>https://blog.youkuaiyun.com/rangf/article/details/47863273</link><guid>https://blog.youkuaiyun.com/rangf/article/details/47863273</guid><author>rangf</author><pubDate>Sat, 22 Aug 2015 20:40:25 +0800</pubDate><description><![CDATA[下面这帖子蛮好：
http://bbs.youkuaiyun.com/topics/390297105]]></description><category></category></item><item><title><![CDATA[截取字符串中特定字符之前的子串，并返回剩余子串]]></title><link>https://blog.youkuaiyun.com/rangf/article/details/46911387</link><guid>https://blog.youkuaiyun.com/rangf/article/details/46911387</guid><author>rangf</author><pubDate>Thu, 16 Jul 2015 14:28:22 +0800</pubDate><description><![CDATA[char * GetStringBefore(char* inputData, char c, char *buf, int buflen)
{
char *p = strchr(inputData,c);
if( !p )
return p;
int len = (p-inputData) > buflen-1 ? buflen-1  : p-inputData;
if( len >]]></description><category></category></item><item><title><![CDATA[对当前目录下（包括子目录）特定类型文件执行某种操作]]></title><link>https://blog.youkuaiyun.com/rangf/article/details/46126189</link><guid>https://blog.youkuaiyun.com/rangf/article/details/46126189</guid><author>rangf</author><pubDate>Thu, 28 May 2015 17:39:52 +0800</pubDate><description><![CDATA[find命令是一个非常优秀的工具，它可以按照用户指定的准则来匹配文件。使用exec和xargs可以使用户对所匹配到的文件执行几乎所有的命令。
find命令有-exec的选项，一旦find命令匹配到了相应的文件，就可以有-exec选项中的命令对其进行操作。
保险起见还是先用ls命令看看匹配的文件是不是都可以删：
find . -name "*.o" -exec ls {} \;
删除当前目录]]></description><category></category></item><item><title><![CDATA[散乱学习资料]]></title><link>https://blog.youkuaiyun.com/rangf/article/details/45972891</link><guid>https://blog.youkuaiyun.com/rangf/article/details/45972891</guid><author>rangf</author><pubDate>Mon, 25 May 2015 18:53:18 +0800</pubDate><description><![CDATA[在类定义中添加一个指向自己的静态指针变量相当于建立了一个该类的全局指针变量，只是封装到类中了而已。



数据库连接池原理：
连接池基本的思想是在系统初始化的时候，将数据库连接作为对象存储在内存中，当用户需要访问数据库时，并非建立一个新的连接，而是从连接池中取出一个已建立的空闲连接对象。使用完毕后，用户也并非将连接关闭，而是将连接放回连接池中，以供下一个请求访问使用。而连接的建立、断开都]]></description><category></category></item><item><title><![CDATA[Linux中常用的压缩和解压缩命令汇总]]></title><link>https://blog.youkuaiyun.com/rangf/article/details/44775649</link><guid>https://blog.youkuaiyun.com/rangf/article/details/44775649</guid><author>rangf</author><pubDate>Tue, 31 Mar 2015 10:53:54 +0800</pubDate><description><![CDATA[参考网址:http://www.jb51.net/LINUXjishu/141747.html






文件类型
执行动作
命令




.tar
解包
tar xvf FileName.tar


.tar
打包
tar cvf FileName.tar DirName


.gz
解压1
gunzip FileName.gz


.]]></description><category></category></item><item><title><![CDATA[stock]]></title><link>https://blog.youkuaiyun.com/rangf/article/details/44459367</link><guid>https://blog.youkuaiyun.com/rangf/article/details/44459367</guid><author>rangf</author><pubDate>Thu, 19 Mar 2015 16:09:34 +0800</pubDate><description><![CDATA[000828东莞控股
000505珠江控股
600663陆家嘴
002706良信电器
002136安纳达
002669康达新材
600401海润光伏
002210飞马国际
600446金证股份
600196复星医药
002030达安基因
002184海得控制
002073软控股份
002632道明光学
002574明牌珠宝
300299富春通信
300180华峰氨纶]]></description><category></category></item><item><title><![CDATA[构造函数、拷贝构造函数、赋值操作符、析构函数、debug与release]]></title><link>https://blog.youkuaiyun.com/rangf/article/details/44283655</link><guid>https://blog.youkuaiyun.com/rangf/article/details/44283655</guid><author>rangf</author><pubDate>Sun, 15 Mar 2015 23:30:46 +0800</pubDate><description><![CDATA[1，都是函数
2，拷贝构造函数是一种特殊的构造函数，所以只有当对象不存在或没有被创建时才能执行拷贝构造函数
3，什么时候会调用拷贝构造函数？以下三种情况出现时，会调用一个类的拷贝构造函数：
      1) 用一个已经实例化了的该类对象，去实例化该类的另外一个对象；
      2) 用该类的对象传值的方式作为一个函数的参数；
      3) 一个函数返回值为该类的一个对象。

D]]></description><category></category></item><item><title><![CDATA[排序算法学习系列(一)]]></title><link>https://blog.youkuaiyun.com/rangf/article/details/44126805</link><guid>https://blog.youkuaiyun.com/rangf/article/details/44126805</guid><author>rangf</author><pubDate>Sun, 08 Mar 2015 01:12:31 +0800</pubDate><description><![CDATA[插入排序
冒泡排序
选择排序
快速排序
堆排序
归并排序
基数排序
希尔排序]]></description><category></category></item><item><title><![CDATA[数据结构学习系列(一)]]></title><link>https://blog.youkuaiyun.com/rangf/article/details/44126707</link><guid>https://blog.youkuaiyun.com/rangf/article/details/44126707</guid><author>rangf</author><pubDate>Sun, 08 Mar 2015 01:10:15 +0800</pubDate><description><![CDATA[链表(单链表、双链表)
堆栈
队列
树(二叉树、红黑树)]]></description><category></category></item><item><title><![CDATA[C++对象模型学习系列(一)]]></title><link>https://blog.youkuaiyun.com/rangf/article/details/44126683</link><guid>https://blog.youkuaiyun.com/rangf/article/details/44126683</guid><author>rangf</author><pubDate>Sun, 08 Mar 2015 01:06:23 +0800</pubDate><description><![CDATA[待完成。。。]]></description><category></category></item><item><title><![CDATA[C++默认构造函数]]></title><link>https://blog.youkuaiyun.com/rangf/article/details/44116099</link><guid>https://blog.youkuaiyun.com/rangf/article/details/44116099</guid><author>rangf</author><pubDate>Sat, 07 Mar 2015 19:09:15 +0800</pubDate><description><![CDATA[C++ primer中的三个地方讲解了默认构造函数：
P44变量初始化规则
P227函数(构造函数)
P388类(构造函数初始化式)


一， 变量初始化规则（P44和P227）
1，对于类类型的成员，调用该成员所属类自身的默认构造函数实现初始化。
2，内置类型成员的初值依赖于对象定义的位置，如果对象在全局作用域中定义(既不在任何函数中)或定义为静态局部对象，则这些成员将被初始化为]]></description><category></category></item><item><title><![CDATA[C++中的类型分类]]></title><link>https://blog.youkuaiyun.com/rangf/article/details/44115085</link><guid>https://blog.youkuaiyun.com/rangf/article/details/44115085</guid><author>rangf</author><pubDate>Sat, 07 Mar 2015 14:05:14 +0800</pubDate><description><![CDATA[C++中，什么是复合类型？
刚开始，还以为自定义的类是复合类型。查了C++ primer才知道复合类型不是类，在p51页定义为：用其它类型定义的类型。个人理解为：不是基本类型和用户自定义类型。
在C++中类型大致可以分为三种：
一、内置类型
        如int, char, float, bool, void等。内置类型是最基本的类型。
二、复合类型
        复合类型：用]]></description><category></category></item><item><title><![CDATA[const 与 #define的区别]]></title><link>https://blog.youkuaiyun.com/rangf/article/details/44114613</link><guid>https://blog.youkuaiyun.com/rangf/article/details/44114613</guid><author>rangf</author><pubDate>Sat, 07 Mar 2015 11:36:18 +0800</pubDate><description><![CDATA[由于笔试面试中常常被问及这两者之间的区别，在此作一个简单的总结和扩充。


在C语言中：
#define用来定义宏，用宏来代替常量(包括无参量、有参量)；
typedef用来为类型标示符定义别名，以便增加可读性；
到了C++中：
const、enum、inline、引用也都成为了定义别名的工具。


其中#define与const的区别主要如下：
在C++中不推荐用宏，尽量少]]></description><category></category></item><item><title><![CDATA[上证每日收评]]></title><link>https://blog.youkuaiyun.com/rangf/article/details/42970063</link><guid>https://blog.youkuaiyun.com/rangf/article/details/42970063</guid><author>rangf</author><pubDate>Wed, 21 Jan 2015 16:30:25 +0800</pubDate><description><![CDATA[2015.01.20
今天的黑天鹅事件以后还会遇到，并且速度更凌厉、力度更大。这样的事件(政策市)不是我们能控制的，不能控制它就用平常心看待它，这也是政策市所带来的一种特色现象。股市既然提供了一个赚钱的机遇，那么就一定会伴随着风险，从现实出发我们不期望每一次的机遇都把握住而又躲过每一次的“黑天鹅”，做好自己力所能及的事：
A，管理好资金、在合适的时间段配置一定比例的做空权利(条件许可~)；
]]></description><category></category></item><item><title><![CDATA[文本编辑器]]></title><link>https://blog.youkuaiyun.com/rangf/article/details/42489493</link><guid>https://blog.youkuaiyun.com/rangf/article/details/42489493</guid><author>rangf</author><pubDate>Wed, 07 Jan 2015 11:19:13 +0800</pubDate><description><![CDATA[EditPlus
EmEditor
Notepad++
Notepad2
UltraEdit
Editra
Vim
还有包括：
netbeans
zendstudio
dreamweaver
sublime text

参考：http://blog.youkuaiyun.com/w6611415/article/details/7725566]]></description><category></category></item></channel></rss>