<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[onlysingleboy的专栏]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/onlysingleboy</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; onlysingleboy]]></copyright><item><title><![CDATA[C++的模板为什么要在头文件(.h)中实现？]]></title><link>https://blog.csdn.net/onlysingleboy/article/details/75290343</link><guid>https://blog.csdn.net/onlysingleboy/article/details/75290343</guid><author>onlysingleboy</author><pubDate>Tue, 18 Jul 2017 12:17:08 +0800</pubDate><description><![CDATA[今天是个科普文：C++的模板为什么要在头文件(.h)中实现？
模板的用途

这个事情其实我没什么发言权，实话实说，我写模板比较少。对于模板的重要性，也是最近才感觉到。至于模板的重要性，这里也不多说，自己悟。



模板编写

这里就举个函数模板的例子(我们把实现放在.cpp的错误例子)：

lp_max.h





template 

T max(cons]]></description><category></category></item><item><title><![CDATA[程序猿为什么不喜欢写文档？]]></title><link>https://blog.csdn.net/onlysingleboy/article/details/75003716</link><guid>https://blog.csdn.net/onlysingleboy/article/details/75003716</guid><author>onlysingleboy</author><pubDate>Wed, 12 Jul 2017 09:24:50 +0800</pubDate><description><![CDATA[有几个事情其实一直是猿猿们内心的痛：


新入职小白

5分钟前：

这系统怎么就没有文档呢？





中级码农

4分钟前：

这代码tm居然没有注释和说明！！！





老油条程序猿

3分钟前：

让文档见鬼去吧！谁爱写谁写







开发文档现状

问了差不多十几个程序猿同学关于公司文档的现状，基本上只有个别]]></description><category></category></item><item><title><![CDATA[反向迭代器reverse_iterator与正向迭代器iterator之间的转换（list反向删除元素的方法）]]></title><link>https://blog.csdn.net/onlysingleboy/article/details/74504266</link><guid>https://blog.csdn.net/onlysingleboy/article/details/74504266</guid><author>onlysingleboy</author><pubDate>Wed, 05 Jul 2017 23:01:26 +0800</pubDate><description><![CDATA[首先，本文的公众号地址为：你真的会清理std::list的元素吗？ 刚开通公众号，请求大家关注一下，谢谢大家。公众号二维码如下：有经验的程序员都知道，list是链表，可以遍历删除，删除的过程类似于以下代码（遍历删除521）：int key=521;//程序员就不要爱情了吧
list::iterator it=l.begin();//l为std::list
    for (; it != l.en]]></description><category></category></item><item><title><![CDATA[Linux shell 之 提取文件名和目录名的一些方法]]></title><link>https://blog.csdn.net/onlysingleboy/article/details/68928609</link><guid>https://blog.csdn.net/onlysingleboy/article/details/68928609</guid><author>onlysingleboy</author><pubDate>Fri, 31 Mar 2017 19:23:42 +0800</pubDate><description><![CDATA[原文出处：http://blog.csdn.net/ljianhui/article/details/43128465#comments
很多时候在使用Linux的shell时，我们都需要对文件名或目录名进行处理，通常的操作是由路径中提取出文件名，从路径中提取出目录名，提取文件后缀名等等。例如，从路径/dir1/dir2/file.txt中提取也文件名file.txt，提取出目录/dir1/di]]></description><category></category></item><item><title><![CDATA[shell中的字符串比较方法]]></title><link>https://blog.csdn.net/onlysingleboy/article/details/59057558</link><guid>https://blog.csdn.net/onlysingleboy/article/details/59057558</guid><author>onlysingleboy</author><pubDate>Wed, 01 Mar 2017 10:32:53 +0800</pubDate><description><![CDATA[#!/bin/sh
 
#测试各种字符串比较操作。
#shell中对变量的值添加单引号，爽引号和不添加的区别：对类型来说是无关的，即不是添加了引号就变成了字符串类型，
#单引号不对相关量进行替换，如不对$符号解释成变量引用，从而用对应变量的值替代，双引号则会进行替代
#author:tenfyguo
 
A="$1"
B="$2"
 
echo "输入的原始值：A=$A,B=$]]></description><category></category></item><item><title><![CDATA[windows下django安装配置]]></title><link>https://blog.csdn.net/onlysingleboy/article/details/40739179</link><guid>https://blog.csdn.net/onlysingleboy/article/details/40739179</guid><author>onlysingleboy</author><pubDate>Mon, 03 Nov 2014 13:51:25 +0800</pubDate><description><![CDATA[1、安装python，尽可能使用2.X版本，3.X版本兼容性不是很好，下载地址https://www.python.org/downloads/，并将安装目录添加到 环境 path里面，如c://python
2、安装MySQL-python-1.2.5.win-XXX.exe,版本是根据python和操作系统定的，尽可能一致 下载地址http://www.codegood.com/downlo]]></description><category></category></item><item><title><![CDATA[关于list循环删除元素，迭代器失效的问题]]></title><link>https://blog.csdn.net/onlysingleboy/article/details/40148619</link><guid>https://blog.csdn.net/onlysingleboy/article/details/40148619</guid><author>onlysingleboy</author><pubDate>Thu, 16 Oct 2014 15:08:30 +0800</pubDate><description><![CDATA[问题的关键是：在删除元素之前，将当前迭代器保存下来。当然，这里仅支持list，因为list的链式的删除一个元素，前面的指针指向下一个元素，vector和queue就不好办了，它们或者是线性的或者是半线性半链式，迭代器会失效
#include
#include
using namespace std;
int main()
{
	list l;
	for(int i=1;i<=100;i++)]]></description><category></category></item><item><title><![CDATA[virtualBox虚拟机linux（CentOS）扩容（增加原先设置的大小 扩容至根目录）]]></title><link>https://blog.csdn.net/onlysingleboy/article/details/38562283</link><guid>https://blog.csdn.net/onlysingleboy/article/details/38562283</guid><author>onlysingleboy</author><pubDate>Thu, 14 Aug 2014 18:32:28 +0800</pubDate><description><![CDATA[对于目前的网络开发者来说，比较好的搭档就是Win7+VirtualBox+CentOS的组合，既可以发挥Linux强大的网络服务功能，也可以有效的隔离各项服务拖慢系统，影响系统的运行，对于新手来说可以减少配置错误带来的损失，最主要的是方便移植，不同每次重装系统，都要痛苦的安装配置一大堆东西。

但如果当我们在虚拟机中安装和使用的时候，发现系统存储不够用，怎么办，使用VirtualBox 4 版]]></description><category></category></item><item><title><![CDATA[64位CentOS 6.5编译配置ACE 6.1.0(6.2.0)]]></title><link>https://blog.csdn.net/onlysingleboy/article/details/37519201</link><guid>https://blog.csdn.net/onlysingleboy/article/details/37519201</guid><author>onlysingleboy</author><pubDate>Mon, 07 Jul 2014 17:25:00 +0800</pubDate><description><![CDATA[系统：CentOS 6.5 64位
ACE版本：6.1.0
假定压缩文件目录为:/usr/local/
步骤1：
解压下载好的ACE-6.1.0.tar.gz
# tar zxvf ACE-6.1.0.tar.gz 

出现一个名为:ACE_wrappers的文件夹


步骤2：定义环境变量：

修改/etc/profile 或者 /etc/bashrc

# vi /]]></description><category></category></item><item><title><![CDATA[Makefile经典入门]]></title><link>https://blog.csdn.net/onlysingleboy/article/details/36871329</link><guid>https://blog.csdn.net/onlysingleboy/article/details/36871329</guid><author>onlysingleboy</author><pubDate>Fri, 04 Jul 2014 10:59:57 +0800</pubDate><description><![CDATA[makefile很重要

      什么是makefile？或许很多Winodws的程序员都不知道这个东西，因为那些Windows的IDE都为你做了这个工作，但我觉得要作一个好的和professional的程序员，makefile还是要懂。这就好像现在有这么多的HTML的编辑器，但如果你想成为一个专业人士，你还是要了解HTML的标识的含义。特别在Unix下的软件编译，你就不能不自己写make]]></description><category></category></item><item><title><![CDATA[boost中自动确定数据类型（BOOST_TYPEOF和BOOST_AUTO）的使用]]></title><link>https://blog.csdn.net/onlysingleboy/article/details/36681413</link><guid>https://blog.csdn.net/onlysingleboy/article/details/36681413</guid><author>onlysingleboy</author><pubDate>Thu, 03 Jul 2014 18:17:42 +0800</pubDate><description><![CDATA[#include
#include
#include
#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() //为了注册新的数据类型
using namespace std;
namespace ex{   //定义新的数据类型
struct demo_class
{
	int a,b;
};
BOOST_TYPEOF_REG]]></description><category></category></item><item><title><![CDATA[boost库中singleton_pool和pool_allocator的使用]]></title><link>https://blog.csdn.net/onlysingleboy/article/details/36671745</link><guid>https://blog.csdn.net/onlysingleboy/article/details/36671745</guid><author>onlysingleboy</author><pubDate>Thu, 03 Jul 2014 16:57:15 +0800</pubDate><description><![CDATA[#include
#include
#include
#include
//#pragma comment(lib,"libboost_thread-vc110-mt-gd-1_55.lib")
using namespace std;
using namespace boost;
struct pool_tag{};//仅仅用来标记的空结构体
typedef singleton_]]></description><category></category></item><item><title><![CDATA[linux动态库与静态库使用比较]]></title><link>https://blog.csdn.net/onlysingleboy/article/details/36657719</link><guid>https://blog.csdn.net/onlysingleboy/article/details/36657719</guid><author>onlysingleboy</author><pubDate>Thu, 03 Jul 2014 15:21:12 +0800</pubDate><description><![CDATA[在windows下，动态库dll的使用往往伴随着lib的指引，而linux使用动态库和静态库则有较大的不同。

linux静态库和动态库的区别

1. 静态库

        名字一般是libxxx.a；利用静态函数库编译成的文件比较大，因为整个 函数库的所有数据都会被整合进目标代码中，编译后的执行程序不需要外部的函数库支持，但是，升级比较麻烦。每一次版本更新都需要重新编译。]]></description><category></category></item><item><title><![CDATA[VS2012关于hash_map的使用简略]]></title><link>https://blog.csdn.net/onlysingleboy/article/details/36438199</link><guid>https://blog.csdn.net/onlysingleboy/article/details/36438199</guid><author>onlysingleboy</author><pubDate>Wed, 02 Jul 2014 17:51:07 +0800</pubDate><description><![CDATA[VS关于hash_map使用的一些常用构造方法汇总，包括基本类型和结构体，相信够一般模仿使用：
# include
#include
#include
struct order
{
	char orderNO[20];
	char name[10];
	int NO;
	char type;
};
typedef order Order;
struct cmp{
	 enum  
    {]]></description><category></category></item><item><title><![CDATA[boost准模板库内存管理中pool和object_pool的使用]]></title><link>https://blog.csdn.net/onlysingleboy/article/details/24440663</link><guid>https://blog.csdn.net/onlysingleboy/article/details/24440663</guid><author>onlysingleboy</author><pubDate>Fri, 25 Apr 2014 00:09:04 +0800</pubDate><description><![CDATA[#define BOOST_ALL_NO_LIB
#include
#include
using namespace boost;
using namespace std;
//using namespace boost::system;
int main()
{
pool
int *p=(int *)p1.malloc();//分配一个ing类型的内存，并把指针强制转换后给p]]></description><category></category></item><item><title><![CDATA[boost准模板库scoped_ptr指针的使用以及auto_ptr智能指针的对比]]></title><link>https://blog.csdn.net/onlysingleboy/article/details/24204901</link><guid>https://blog.csdn.net/onlysingleboy/article/details/24204901</guid><author>onlysingleboy</author><pubDate>Sun, 20 Apr 2014 23:46:25 +0800</pubDate><description><![CDATA[首先我们看看scoped_ptr的基本使用，包含了swap(),get()，reset()的使用，重要的提醒是作用域结束的时候会自动析构，无需手动的释放资源：
#include
#include
using namespace std;
using namespace boost;
struct posix_file
{
	posix_file(const char * file_name)//]]></description><category></category></item><item><title><![CDATA[boost准模板库time_duration类的使用（续）]]></title><link>https://blog.csdn.net/onlysingleboy/article/details/24066503</link><guid>https://blog.csdn.net/onlysingleboy/article/details/24066503</guid><author>onlysingleboy</author><pubDate>Sat, 19 Apr 2014 00:33:49 +0800</pubDate><description><![CDATA[#define BOOST_ALL_NO_LIB
#define BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG
//启用纳秒级别的精确度
//#define BOOST_DATE_TIME_SOURSE
#include
#include
using namespace boost::posix_time;
using namespace std;


int mai]]></description><category></category></item><item><title><![CDATA[boost准模板库time_duration类的使用]]></title><link>https://blog.csdn.net/onlysingleboy/article/details/23890677</link><guid>https://blog.csdn.net/onlysingleboy/article/details/23890677</guid><author>onlysingleboy</author><pubDate>Thu, 17 Apr 2014 00:33:14 +0800</pubDate><description><![CDATA[# define BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG
#define BOOST_ALL_NO_LIB
#include
#include
using namespace std;
using namespace boost::posix_time;


int main()
{
	time_duration td(1,10,20,1000);//定义一个时]]></description><category></category></item><item><title><![CDATA[boost准模板库date迭代器（指针）使用以及常用的两个静态成员函数is_leap_year()和end_of_month_day()]]></title><link>https://blog.csdn.net/onlysingleboy/article/details/23707687</link><guid>https://blog.csdn.net/onlysingleboy/article/details/23707687</guid><author>onlysingleboy</author><pubDate>Mon, 14 Apr 2014 21:44:17 +0800</pubDate><description><![CDATA[//日期迭代器使用
#define BOOST_DATE_TIME_SOURCE  
#include  
#include  
#include  
#include  
#include  
#include  
using namespace std;  
using namespace boost::gregorian; 


int main()
{
date d(1991,5,1);]]></description><category></category></item><item><title><![CDATA[boost准模板库date_period()(时间段使用 续1）时间段之间的关系运算]]></title><link>https://blog.csdn.net/onlysingleboy/article/details/23565507</link><guid>https://blog.csdn.net/onlysingleboy/article/details/23565507</guid><author>onlysingleboy</author><pubDate>Sat, 12 Apr 2014 23:55:48 +0800</pubDate><description><![CDATA[#define BOOST_DATE_TIME_SOURCE  
#include  
#include  
#include  
#include  
#include  
#include  
using namespace std;  
using namespace boost::gregorian;  
int main()
{
date d1(1991,5,1);]]></description><category></category></item></channel></rss>