- 博客(52)
- 资源 (4)
- 收藏
- 关注
原创 C++的模板为什么要在头文件(.h)中实现?
今天是个科普文:C++的模板为什么要在头文件(.h)中实现?模板的用途这个事情其实我没什么发言权,实话实说,我写模板比较少。对于模板的重要性,也是最近才感觉到。至于模板的重要性,这里也不多说,自己悟。模板编写这里就举个函数模板的例子(我们把实现放在.cpp的错误例子):lp_max.htemplate T max(cons
2017-07-18 12:17:08
12420
原创 程序猿为什么不喜欢写文档?
有几个事情其实一直是猿猿们内心的痛:新入职小白5分钟前:这系统怎么就没有文档呢?中级码农4分钟前:这代码tm居然没有注释和说明!!!老油条程序猿3分钟前:让文档见鬼去吧!谁爱写谁写开发文档现状问了差不多十几个程序猿同学关于公司文档的现状,基本上只有个别
2017-07-12 09:24:50
3804
原创 反向迭代器reverse_iterator与正向迭代器iterator之间的转换(list反向删除元素的方法)
首先,本文的公众号地址为:你真的会清理std::list的元素吗? 刚开通公众号,请求大家关注一下,谢谢大家。公众号二维码如下:有经验的程序员都知道,list是链表,可以遍历删除,删除的过程类似于以下代码(遍历删除521):int key=521;//程序员就不要爱情了吧list::iterator it=l.begin();//l为std::list for (; it != l.en
2017-07-05 23:01:26
8127
3
转载 Linux shell 之 提取文件名和目录名的一些方法
原文出处:http://blog.csdn.net/ljianhui/article/details/43128465#comments很多时候在使用Linux的shell时,我们都需要对文件名或目录名进行处理,通常的操作是由路径中提取出文件名,从路径中提取出目录名,提取文件后缀名等等。例如,从路径/dir1/dir2/file.txt中提取也文件名file.txt,提取出目录/dir1/di
2017-03-31 19:23:42
435
转载 shell中的字符串比较方法
#!/bin/sh #测试各种字符串比较操作。#shell中对变量的值添加单引号,爽引号和不添加的区别:对类型来说是无关的,即不是添加了引号就变成了字符串类型,#单引号不对相关量进行替换,如不对$符号解释成变量引用,从而用对应变量的值替代,双引号则会进行替代#author:tenfyguo A="$1"B="$2" echo "输入的原始值:A=$A,B=$
2017-03-01 10:32:53
1392
原创 windows下django安装配置
1、安装python,尽可能使用2.X版本,3.X版本兼容性不是很好,下载地址https://www.python.org/downloads/,并将安装目录添加到 环境 path里面,如c://python2、安装MySQL-python-1.2.5.win-XXX.exe,版本是根据python和操作系统定的,尽可能一致 下载地址http://www.codegood.com/downlo
2014-11-03 13:51:25
948
原创 关于list循环删除元素,迭代器失效的问题
问题的关键是:在删除元素之前,将当前迭代器保存下来。当然,这里仅支持list,因为list的链式的删除一个元素,前面的指针指向下一个元素,vector和queue就不好办了,它们或者是线性的或者是半线性半链式,迭代器会失效#include#includeusing namespace std;int main(){ list l; for(int i=1;i<=100;i++)
2014-10-16 15:08:30
2081
转载 virtualBox虚拟机linux(CentOS)扩容(增加原先设置的大小 扩容至根目录)
对于目前的网络开发者来说,比较好的搭档就是Win7+VirtualBox+CentOS的组合,既可以发挥Linux强大的网络服务功能,也可以有效的隔离各项服务拖慢系统,影响系统的运行,对于新手来说可以减少配置错误带来的损失,最主要的是方便移植,不同每次重装系统,都要痛苦的安装配置一大堆东西。但如果当我们在虚拟机中安装和使用的时候,发现系统存储不够用,怎么办,使用VirtualBox 4 版
2014-08-14 18:32:28
11651
3
原创 64位CentOS 6.5编译配置ACE 6.1.0(6.2.0)
系统: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 /
2014-07-07 17:25:00
2443
转载 Makefile经典入门
makefile很重要 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写make
2014-07-04 10:59:57
591
原创 boost中自动确定数据类型(BOOST_TYPEOF和BOOST_AUTO)的使用
#include#include#include#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() //为了注册新的数据类型using namespace std;namespace ex{ //定义新的数据类型struct demo_class{ int a,b;};BOOST_TYPEOF_REG
2014-07-03 18:17:42
2808
原创 boost库中singleton_pool和pool_allocator的使用
#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_
2014-07-03 16:57:15
1980
原创 linux动态库与静态库使用比较
在windows下,动态库dll的使用往往伴随着lib的指引,而linux使用动态库和静态库则有较大的不同。linux静态库和动态库的区别1. 静态库 名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,编译后的执行程序不需要外部的函数库支持,但是,升级比较麻烦。每一次版本更新都需要重新编译。
2014-07-03 15:21:12
996
原创 VS2012关于hash_map的使用简略
VS关于hash_map使用的一些常用构造方法汇总,包括基本类型和结构体,相信够一般模仿使用:# include#include#includestruct order{ char orderNO[20]; char name[10]; int NO; char type;};typedef order Order;struct cmp{ enum {
2014-07-02 17:51:07
1463
原创 boost准模板库内存管理中pool和object_pool的使用
#define BOOST_ALL_NO_LIB#include#includeusing namespace boost;using namespace std;//using namespace boost::system;int main(){poolint *p=(int *)p1.malloc();//分配一个ing类型的内存,并把指针强制转换后给p
2014-04-25 00:09:04
2928
原创 boost准模板库scoped_ptr指针的使用以及auto_ptr智能指针的对比
首先我们看看scoped_ptr的基本使用,包含了swap(),get(),reset()的使用,重要的提醒是作用域结束的时候会自动析构,无需手动的释放资源:#include#includeusing namespace std;using namespace boost;struct posix_file{ posix_file(const char * file_name)//
2014-04-20 23:46:25
1064
原创 boost准模板库time_duration类的使用(续)
#define BOOST_ALL_NO_LIB#define BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG//启用纳秒级别的精确度//#define BOOST_DATE_TIME_SOURSE#include#includeusing namespace boost::posix_time;using namespace std;int mai
2014-04-19 00:33:49
1541
原创 boost准模板库time_duration类的使用
# define BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG#define BOOST_ALL_NO_LIB#include#includeusing namespace std;using namespace boost::posix_time;int main(){ time_duration td(1,10,20,1000);//定义一个时
2014-04-17 00:33:14
1880
原创 boost准模板库date迭代器(指针)使用以及常用的两个静态成员函数is_leap_year()和end_of_month_day()
//日期迭代器使用#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);
2014-04-14 21:44:17
2822
1
原创 boost准模板库date_period()(时间段使用 续1)时间段之间的关系运算
#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);
2014-04-12 23:55:48
1156
原创 boost准模板库date_period()(时间段使用)
//时间间隔问题#define BOOST_DATE_TIME_SOURCE/*#define BOOST_DATE_TIME_SOIURCE #define BOOST_DATE_TIME_NO_LIB或者#BOOST_ALL_NO_LIB这些宏定义指明项目对于boost库是源代码级别的引入,将boost库源代码直接嵌入到工程中,不加的话默认找编译后的boost库文件*/#includ
2014-04-12 13:15:40
1192
原创 boost准模板库date_period()时间段操作
//时间间隔问题#define BOOST_DATE_TIME_SOURCE/*#define BOOST_DATE_TIME_SOIURCE #define BOOST_DATE_TIME_NO_LIB或者#BOOST_ALL_NO_LIB这些宏定义指明项目对于boost库是源代码级别的引入,将boost库源代码直接嵌入到工程中,不加的话默认找编译后的boost库文件*/#includ
2014-04-12 00:10:03
1042
原创 boost准模板库date类使用(续1 date与日期date 周weeks 年份years 天days计算)
boost库的使用,可以提高C++编程效率,事件处理使开发人员减少很多的时间去做这些计算工作。类库的学习过程也不是特别复杂,一些处理可以省去程序员大把的时间,让我们一起学习boost准标准模板库吧!
2014-04-11 10:57:17
1269
原创 boost准模板库date类使用(直接引入方式)
#define BOOST_DATE_TIME_SOURCE/*#define BOOST_DATE_TIME_SOIURCE #define BOOST_DATE_TIME_NO_LIB或者#BOOST_ALL_NO_LIB这些宏定义指明项目对于boost库是源代码级别的引入,将boost库源代码直接嵌入到工程中,不加的话默认找编译后的boost库文件*/#include#i
2014-04-11 09:22:04
1224
原创 boost准模板库progress.hpp使用
http://blog.csdn.net/onlysingleboy/article/details/22869555boost准模板库 timer.hpp使用,这是一个简单的取时间的库,而progress.hpp里面的progress_timer类是对timer.hpp里面的timer类的继承,timer类没有析构函数,而progress_timer实现了析构函数,当这个类的实例化对象作
2014-04-03 14:59:05
1089
原创 boost准模板库 timer.hpp使用
在程序运行时,要记录一段指令或者整个程序运行时间,则可以使用boost里关于时间的简单处理程序,这些函数存放在timer.hppl里面,可以直接引入使用,无需其他编译工作,但是,在使用前,要引入“#include”,在引用目录里面添加boost的根目录,如D:\boost_1_55_0\boost_1_55_0,这样,前面的头文件引用才会正确#include#includeus
2014-04-03 14:45:07
2411
转载 linux查看磁盘空间
如果要查看磁盘还剩多少空间,当然是用df的命令了。[root@localhost ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/sda2 14G 11G 2.6G 82% / /dev/sda1 99M 14M 81M 14% /boot t
2014-03-14 10:10:51
627
转载 Centos安装和配置mysql
如果要在Linux上做j2ee开发,首先得搭建好j2ee的开发环境,包括了jdk、tomcat、eclipse的安装(这个在之前的一篇随笔中已经有详细讲解了Linux学习之CentOS(七)--CentOS下j2ee环境搭建),如果要开发web项目,我们当然可以安装一个myeclipse到Linux系统上去,这个安装方法和安装eclipse完全相同,就没有记录下来了,有了jdk、tomcat、ec
2014-02-17 17:32:59
594
原创 23种设计模式——1单例模式
1.单例模式(singleton Pattern)是一种简单的设计模式,它的定义如下:为了确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 2.通用代码如下class Singleton { private static final Singleton singleton=new Singleton(); private Singleton(){ //自
2013-11-21 21:28:21
725
原创 C++ STL学习笔记7--priority_queue优先队列
优先队列包括构造函数操作priority_queue,push(入队),pop(出队),top(取队首元素),empty(判空),size(取空间大小),其中,元素默认是从大到小的顺序,可以通过构造函数设置从小到大(priority_queue||deque,greater>),元素push操作后,都将按照构造函数的顺序排序,top操作将按照构造函数设置的的顺序弹出示例代码:#incl
2013-11-02 11:23:02
884
原创 C++各个容器比较(vector,deque,list,set,map,queue,stack)
1、vector(连续的空间存储,可以使用[ ]操作符)可以快速的访问随机的元素,快速的在末尾插入元素,但是在序列中间随机的插入、删除元素要慢。而且,如果一开始分配的空间不够时,有一个重新分配更大空间的过程。2、deque(小片的连续,小片间用链表相连,实际上内部有一个map的指针,因为知道类型,所以还是可以使用[ ],只是速度没有vector快)快速的访问随机的元素,快速的在开始和末尾插入元
2013-10-24 14:50:50
8134
原创 C++ STL学习笔记6--queue
queue是一个受限制的deque,操作包括尾部插入(push),首部弹出(pop),取队首元素引用(front),取队尾元素引用(back),获取队列空间大小(size),判空(empty)等,下面是一个测试例子。# include# include# includeusing namespace std;int main(){ queue > s;
2013-10-24 12:42:16
741
原创 C++ STL学习笔记5--stack
stack是栈,可以有的操作包括入栈push()、出栈pop()、获得栈顶元素top()、判空empty(),获得空间元素个数等// stack函数的基本操作 #include #include #include #include #include #include using namespace std; int main() { stac
2013-10-22 00:09:15
648
原创 C++ STL学习笔记4--list
#include#include#include#includeusing namespace std;int main(){ //构造函数 string temp="I love you"; vectortemp1(10,20); listtest1;//构造函数 1 listtest2(10); //
2013-10-07 00:20:49
607
原创 C++ STL学习笔记3--deque
deque的各种方法使用大全,用一个程序展示#include# includeusing namespace std;int main(){ //四种初始化方法 dequed;//创建空deque dequed1(2,5);//创建有两个0的deque dequed2(10,1);//创建一个拥有10个1的deque deque
2013-09-29 15:43:46
625
原创 C++ STL学习笔记2--String
String是C语言char数组的变形和封装,作为一个结构体存在,具有许多集成的操作,包括初始化、插入、删除、清空、计数、判断是否空等一、string建立#include#includeusing namespace std;int main(){ string s1;//创建空string string s2("How are you");//用
2013-09-27 16:55:55
567
原创 C++ STL学习笔记1--vector
一.vector头文件# include构建函数5种: 1.vectortest; test.push_back(element); 例:vectortest; test.push_back(1); 2.vectortest(size);例:vectortest(10); for(int i=0;i test.push_b
2013-09-21 01:20:24
935
原创 vs2010下网络编程创建套接字连接例子
建立win32控制台项目,然后新建cpp文件server:#include "WinSock2.h" #include "stdio.h" #pragma comment(lib,"Ws2_32.lib")//导入库,lib表示库," "表示库的名称 int main(int argc, CHAR* argv[]) { //加载Wi
2013-09-05 11:13:39
4367
2
原创 linux建立简单服务器(TCP)
# include#include#include#include#includeint main(){ int s,fd,len; struct sockaddr_in my_addr;//定义IP地址结构struct sockaddr_in remote_addr;int sin_size;char buf[100];memset(&my
2013-09-04 21:46:40
820
原创 mysql服务的启动和关闭
我们知道,mysql服务是后台运行的,一旦安装,服务就开始运行。但是,很不幸,有一天mysql服务死掉了,原因不明,那我们怎么办呢?首先,让我们先来知道怎么启动mysql;方法一:启动“控制面板”,选择“管理工具”,然后双击管理工具下的“服务”,在右侧的服务中找到“mysql”,双击能看到图1,在这里你就可以修改mysql是启动还是关闭了。方法二:假如你是一个命令行的强烈爱好者,不喜欢
2013-08-05 10:22:02
1140
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人