自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

晴天的专栏

专注于Linux /Window平台C/C++游戏服务器后台程序开发

  • 博客(39)
  • 资源 (3)
  • 收藏
  • 关注

原创 安装linux 压缩软件

rar和7z都是出自Uindows的一种压缩格式,目前在Ubuntu下默认是无法解压缩,那我们现在在Ubuntu 12.10中如何使系统支持它们呢?安装 7zip :sudo apt-get install p7zip安装 rar:sudo apt-get install rar

2013-11-22 13:57:20 867

转载 编译Boost——Linux

相对于Windows来,Linux下的boost编译简单至极。没有那么多的可选编译器,没有那长的编译时间,没有那么多的硬盘使用量,统一的inlude和lib目录,你熟悉命令行,不使用IDE,不需要我那么罗嗦的介绍怎么配置EditPlus。首先是下载boost,可以在此http://sourceforge.net/projects/boost寻找一个合适的版本。比如我下载的是boos

2013-11-22 12:03:50 1028

原创 strcmp函数的实现

int strcmp(const char *str1,const char* str2){ while(str1!=NULL&&str2!=NULL); { while(*str1++==*str2++) { if(*str1=='\0'&&*str2=='\0') return 1; } return -1;//不等的情况 } return -2;//

2013-11-21 20:23:11 989

转载 C++实现strcpy字符串拷贝函数

转载于http://blog.csdn.net/yushuai007008/article/details/7626569C语言标准库函数—strcpy(),字符串拷贝  原型声明:extern char *strcpy(char *dest,const char *src);  头文件:string.h  功能:把从src地址开始且含有‘\0’结束符的字符串赋值到以dest开

2013-11-21 20:13:18 7766

转载 c++修改文件(夹)的用户访问权限程序代码

一般Windows下的系统文件(夹)只让受限帐户读取而不让写入和修改。如果要开启写操作权限就需要手动修改文件(夹)的用户帐户安全权限(这操作当然要在管理员帐户下执行).以下用程序封装了一下该操作:  先来个API版本:  //  // 启用某个账户对某个文件(夹)的所有操作权限  // pszPath: 文件(夹)路径  // pszAccount: 账户名称  // 

2013-11-21 20:03:50 6469 1

原创 C++ 向文件中写入一组数据

/* * main.cpp * * Created on: Nov 21, 2013 * Author: yanzefeng */#include #include #include #include #include using namespace std;struct Employee{ std::string name; std::string

2013-11-21 19:46:18 2890

原创 C++从一个文件中统计所有出现过的单词,并按次数从大到小输出

#include #include #include #include #include using namespace std;int main(){ ifstream input; input.open("word.txt"); string eachline; map mapA; //第一个存单词,第二个存单词出现的次数; while (getline(inpu

2013-11-21 17:15:23 5065 1

转载 C++ 智能指针

namespace smart{ // 引用计数类. class smart_count { public: smart_count(int c = 0) : use_count(c) {} ~smart_count() {} // 增加引用计数, 并返回计数值. int addref() { return ++use_count; } // 减少引用计数, 并返回

2013-11-21 14:48:41 848

原创 Eclipse 编译设置 C++11标准 编译选项

2013-11-21 14:41:08 4929

转载 ubuntu下安装Apache+PHP+Mysql

转载自:http://www.comflag.com/2011/05/01/apache-web.htm电影《社交网络》中,facebook创始人马克.扎克失恋后入侵哈佛大学宿舍楼服务器,窃取数据库资料,并在两个小时内完成了一个给校内女生评分的交互网站,该网站一天内点击数过10W,直接导致学校服务器崩溃。。。。。。其实,构建那样一个网站并不需要很多高深的技术,任何一个有一定网络编程基础

2013-11-20 17:39:39 878

原创 ubuntu mysql安装和用户登录

ubuntu mysql安装和用户登录 安装MySQL要安装 MySQL,可以在终端提示符后运行下列命令: sudo apt-get install mysql-server mysql-client #中途会让你输入一次root用户密码sudo apt-get install php5-mysql  #安装php5-mysql 是将php和mysql连接起来一旦安装完

2013-11-20 17:29:06 1055

原创 C++ 字符传分割 str_split

#include #include #include using namespace std; void str_split(const string& input, const string& delimiters, vector& results) { string::size_type pos; size_t size=input.size(); for(siz

2013-11-20 17:13:17 2974

原创 C++ 输入年月,打印出这个月的日历

#include#includeusing namespace std;//1900年1月1号是星期一int nyear(int year)//判断是平年,还是润年{ if(year%400==0||(year%4==0&&year%100!=0)) return 366; else return 365;}int nmonth(int m,int y)

2013-11-20 15:35:54 17290 1

转载 STL迭代器简介

STL迭代器简介标准模板库(The Standard Template Library, STL)定义了五种迭代器。下面的图表画出了这几种:            input         output              \            /                 forward                     |          

2013-11-20 11:22:37 864

原创 指针为什么可以当迭代器用

从本质上来说指针是不能当迭代器来使用的;因为指针这种类型内部中并没有包含迭代器所需要的5种内部类型但指针之所以可以迭代器使用是,他是通过iterator-trait这个模板类进行模板特化,把这个指针进行包装成一个迭代器,而这个迭代器就具有我们之前所说的五种内部类型;

2013-11-20 11:20:26 1551

转载 C++中缀转后缀表达式

将一个普通的中缀表达式转换为后缀表达式的一般算法是:  首先需要分配2个栈,一个作为临时存储运算符的栈S1(含一个结束符号),一个作为输入后缀表达式的栈S2(空栈),S1栈可先放入优先级最低的运算符#,注意,中缀式应以此最低优先级的运算符结束。可指定其他字符,不一定非#不可。从中缀式的左端开始取字符,逐序进行如下步骤:  (1)若取出的字符是数字,则分析出完整的运算数,该运算数直接送入

2013-11-16 15:33:00 1758

转载 C++ 数据结构 堆

堆常用来实现优先队列,在这种队列中,待删除的元素为优先级最高(最低)的那个。在任何时候,任意优先元素都是可以插入到队列中去的,是计算机科学中一类特殊的数据结构的统称一、堆的定义最大(最小)堆是一棵每一个节点的键值都不小于(大于)其孩子(如果存在)的键值的树。大顶堆是一棵完全二叉树,同时也是一棵最大树。小顶堆是一棵完全完全二叉树,同时也是一棵最小树。注意:堆中任一子树亦是堆。

2013-11-15 20:06:05 954

原创 我的Elicpse C++IDE问题解决设置

#!/usr/bin/env xdg-open  2 [Desktop Entry]  3 Name=Eclipse CDT  4 Comment=Eclipse CDT  5 Exec=env UBUNTU_MENUPROXY= /home/yanzefeng/soft/eclipse/eclipse  6 Icon=/home/yanzefeng/soft/eclipse/

2013-11-15 20:00:53 1084

原创 hash表 散列表

#include#include#include#include #define MAXSIZE 20 //电话薄记录数量 #define MAX_SIZE 20 //人名的最大长度#define HASHSIZE 53 //定义表长 #define SUCCESS 1#define UNSUCCESS -1#define LEN sizeof(HashTabl

2013-11-14 17:59:26 1188 1

原创 linux系统在桌面建立快捷方式

yanzefeng@qingtian:~$ cd Desktop/yanzefeng@qingtian:~/Desktop$ lsCC++ 函数参考 .chm         Untitled Document~  笔记     笔记8~C+++Library+Reference.chm  基本算法练习题      笔记10~  笔记9~codes                 

2013-11-13 19:10:14 1124

原创 C++ 异常处理 - 资源管理

使用构造函数和析构函数 局部非静态对象(自动对象),在程序进入其声明处初始化(构造),出了该对象所在的作用域自动销毁(析构),这就是 RAII 的基础支撑 通过正确构造,一定能正确销毁(销毁工作一般由编译器隐式完成),成功构造后,即使随后发生异常,在 stack unwinding过程中也会正确调用析构函数 如果一个对象没能正确构造,那么其析构函数不会调用资源

2013-11-13 17:31:41 864

原创 C++ 异常处理

#include using namespace std;struct BaseException { virtual void foo() { cout << "BaseException::foo()\n"; } int n;};struct DerivedException: BaseException { DerivedException() { } vi

2013-11-13 17:29:11 778

原创 模板指针之间的转换

#include using namespace std;templatestruct Ptr { Ptr(T* p1) : p(p1) { } template operator Ptr() const;private: T* p;};templatetemplatePtr::operator Ptr() const { return Ptr(p);}s

2013-11-13 17:17:24 1568

原创 C++ 模板全特化中的函数特化

#include using namespace std;templatebool isLess(T x, T y) { cout << "general version\n"; return x < y;}template<>bool isLess(int* x, int* y) { cout << "specialization version\n"; return *

2013-11-13 17:09:48 2450

原创 C++ 函数运行期和编译期运行

#include using namespace std;int fact(int n) { return n < 1 ? 1 : n * fact(n - 1);}templatestruct Fact { static const int value = N * Fact::value;};template<>struct Fact { static const

2013-11-13 17:07:37 1628

原创 泛型编程 - 用模板参数指定策略

模板参数指定策略示例:标准库函数 sort()●使用第二个模板参数 ( 比较器 ) 来指定比较的规则(如:降序或升序排列)#include #include using namespace std;void print(int* ar, size_t len) { for (size_t i = 0; i < len; ++i) cout << ar[i] << '

2013-11-13 16:50:12 816

原创 类模板中的函数模板的定义和调用(不是模板类中的普通成员函数)

#include using namespace std;templatestruct A { virtual void foo(); // error: templates may not be ‘virtual’ template /* virtual */ void bar();};templatevoid A::foo() {}templatetempl

2013-11-13 16:44:17 2848

原创 函数模板特化的一些问题

#include using namespace std;templateT my_max(T a1, T a2) { return a1 > a2 ? a1 : a2;}int main() { my_max(100, 102); // my_max(1, 'c'); // Error no matching function for call to ‘my_max(int

2013-11-13 16:42:22 992

原创 泛型编程 - 使用 typename 标识类型

typename 的使用在下面的函数模板的定义中,必须在 Array::const_iterator前加上 typename ,否则该名字 const_iterator 将被当作是类Array 的一个 public 静态成员#include using namespace std;templatestruct A { typedef int int_type;

2013-11-13 16:29:25 1392

原创 模板特化和模板偏特化

#include #include using namespace std;enum Color { R = 1, G = 2, B = 4};namespace std {/*template<>struct numeric_limits { static Color max() { return B; } static Color min() { ret

2013-11-13 16:24:50 826

原创 自己动手写STL中的vector

M0313-array_class_template.h#ifndef DYNAMIC_ARRAY_H_#define DYNAMIC_ARRAY_H_#include #include struct A { A(int n = 0): i(n) { printf("A(%d)\n", i); } ~A() { printf("~A(%d)\n", i); } i

2013-11-13 16:20:09 1445

原创 通过外网来访问自己的家里电脑

首先通过QQ邮箱找到发邮件的公网IP(比如是65.55.116.40);然后一种方法是把家里的内部局域网电脑IP(比如说是192.168.1.106)固定,在路由器中进行端口映射比如8818端口映射你的电脑IP,然后通过外网访问65.55.116.40:8818端口就是访问你的电脑啦,另一种方式是不固定你的内部局域网IP,在路由器设置时进行主机名映射,把你的电脑主机名和外网映射

2013-11-12 17:59:52 16847

转载 路由器端口映射设置方法图解

本文就以TD-W89841N无线路由器为例做一个端口映射80端口号和映射3389端口号为例,希望能帮到局域网内想使用路由器做端口号映射到自己电脑的网友一个帮助。工具/原料 路由器​电脑方法/步骤 1打开浏览器,在浏览器地址栏中输入网关地址回车之后即可打开连接到路由器的登录界面,输入路由器登录用户名和密码

2013-11-12 17:24:04 1627

原创 ubuntu系统做启动盘既之后安装一些软件

在ubuntu系统下有个专门做启动盘的软件叫 startup disk create 安装后装一些软件sudo apt-get install build_essential   ->g++ gdb makeopenjdk-7-jre   JAVA环境vimsshchmsee;   //电子书软件

2013-11-11 18:31:25 783

转载 c++ 函数返回引用

一,c++函数的返回分为以下几种情况 1)主函数main的返回值:这里提及一点,返回0表示程序运行成功。2)返回非引用类型:函数的返回值用于初始化在跳用函数出创建的临时对象。用函数返回值初始化临时对象与用实参初始化形参的方法是一样 的。如果返回类型不是引用,在调用函数的地方会将函数返回值复制给临时对象。且其返回值既可以是局部对象,也可以是求解表达式的结果。3)返回引用:当函数返回引

2013-11-07 17:24:18 789

原创 linux系统安装 FLASH插件

sudo apt-get install aptitude    先安装这个sudo aptitude search flashplayer   然后安装这个FLASH插件, 可能没有sudo aptitude search flash  查找FLASH相关的sudo ape-get install flashplugin-installer  //最后安装这个FLASH插

2013-11-07 17:10:41 893

原创 ubuntn系统的语言切换 就是用Ctrl+ spacew切换语言栏

点击右上角的语言,右键-》text entry setting 在switch to next source using 中 点击一下 然后设置一下,填入Ctrl+ space(就是按一下那两个键就可以啦);

2013-11-07 12:29:33 1002

原创 ubuntu 系统安装 分盘,和显卡驱动安装

一共装四个区/boot    ext3   256MB   系统引导分区/           ext4   30G    装系统的分区/home  ext4  130G   我们的存的一些资料swap     swap  2G   交换分区  做虚拟内存用的对于双显卡驱动 的安装   就一个命令kwarph@xuanyuan-soft03:~$ s

2013-11-07 12:23:49 1394

原创 C++ 放置式new操作符

void* p=::new operator(sizeof(Buffer));    //创建一块内存;Buffer* bp= start_cast(p);    //指针进行装换Buffer* buf3=new(bp) Buffer(128);     //把bp指针指向的内存租借buf3,buf3->put('c');buf3->~Buffer();   //这里析够函数要

2013-11-06 12:11:03 1301

redis设计与实现(第二版) 带目录

《Redis设计与实现》全面而完整地讲解了Redis的内部机制与实现方式,对Redis的大多数单机功能以及所有多机功能的实现原理进行了介绍,展示了这些功能的核心数据结构以及关键的算法思想,图示丰富,描述清晰,并给出大量参考信息。通过阅读本书,读者可以快速、有效地了解Redis的内部构造以及运作机制,更好、更高效地使用Redis

2017-09-01

redis-3.0注释版源码

本项目是注释版的 Redis 3.0 源码, 原始代码来自: https://github.com/antirez/redis 。 这份注释是作者在创作新版《Redis 设计与实现》期间, 为了了解 Redis 的内部实现而制作的, 所有在书中有介绍的内容, 在源码中都进行了相应的注释。 在注释的过程中, 除了少量空格和空行方面的调整外, 没有对原始代码进行任何其他改动, 最大程度地保证了代码的“原汁原味”。 希望这份注释源码能给大家学习和了解 Redis 带来一点帮助

2017-09-01

空空如也

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

TA关注的人

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