C++
酷python
微信公众号: coolpython
展开
-
c++ 合并文件以及拆分
昨天看到一篇介绍TFS的文章,大意是为了处理海量图片,采用分布式架构,将小图片合并为大的文件 兴趣驱使下,写了一个简单的文件合并拆分程序 合并的方法很简单,将小文件写入到大文件中,使用二进制的方式。在大文件头,用一个int记录合并进来的小文件的数量,接下来,一块一块的写入小文件。 每一块都分为三个部分,第一部分是文件的名称,用20个ch原创 2015-03-19 21:40:42 · 11902 阅读 · 0 评论 -
互斥量Mutex 与 互斥量CS
Mutex 和 CS都有“线程所有权”的概念,由于Mutex是内核对象,因此可以处理不同进程中的多线程互斥问题,但是由于是内核,所以速度相比于CS会慢一些,CS相比于Mutex虽然快,但只能处理同一个进程间的多线程互斥。下面将展示一段代码,启动50个线程,并分别打印线程的编号和一个全局的变量using namespace std;int gNum;unsigned int __stdc原创 2015-05-29 08:55:09 · 821 阅读 · 0 评论 -
使用libevent编写定时器
Libevent如何安装请参考这篇博客 windows 上安装 libevent 有了定时器,我们便可以定时的做一些任务 struct event_base *baseEv; //事件struct event *ev;struct timeval tv; //定时器void time_cb(int fd,short _event,void *argc){原创 2015-06-03 09:05:28 · 1499 阅读 · 0 评论 -
也谈virtual
先思考一个问题,来引出本文的主要内容 class A是基类,class B是A的子类,那么请看下面的语句 A* a = new B(); 此时指针a的类型是B还是A? 一直以来,我都认为铁定是B,我一直认为出现了类型转换,但直到今天才知道,这个想法是错误的。 看代码#includeusing namespace std;cla原创 2015-10-17 14:07:56 · 387 阅读 · 0 评论 -
c++常用的字符串操作函数
做一次小小的总结,免得想用的时候现去找函数名: stpcpy功 能: 拷贝一个字符串到另一个,遇到'\0'时停止拷贝,destin要有足够大的空间用 法: char *stpcpy(char *destin, char *source);函数名: strcat功 能: 字符串拼接函数,注意,destin要有足够大的空间用 法: char *strcat(char *原创 2015-10-22 14:56:11 · 995 阅读 · 0 评论 -
c++ 字符串与int,long ,double间的转换
先说字符串转int,long ,double atof(将字符串转换成浮点型数) atoi(将字符串转换成整型数) atol(将字符串转换成长整型数) strtod(将字符串转换成浮点数) strtol(将字符串转换成长整型数) strtoul(将字符串转换成无符号长整型数) toascii(将整型数转换成合原创 2015-11-12 09:04:00 · 1755 阅读 · 0 评论 -
C++函数返回值,你必须注意的问题
C++太繁杂了,先接触C++后接触python这样的语言,你就再也不想碰它,因为,就连一个函数返回值都一大堆的说道,这里面的玄机,连工作三年的C++熟手都未必能准确的理解和运用。 归根结底,C++所面临的问题要求它提供各种各样的机制以保证性能,也许,这辈子也见不到C++能安全有效的自己进行内存垃圾回收。。。。。 老程序猿都会提醒菜鸟,注意函数的返回值,因原创 2015-10-31 10:28:20 · 16306 阅读 · 1 评论 -
C++多级指针
可以认为,指针是C++这把宝剑最锋利的部分,当然,如果你使用不当,也会伤到自己的 本篇博客,将尝试用11级指针这个结构来存储海量的QQ号和密码。首先,郑重声明,我没有海量的QQ号和密码,只是想用这种结构来解决这个不存在的问题,不存在只是对我而言的,据称,腾讯内部的一些代码对QQ的处理就是用的这种结构 何为11级指针,其实,就是在指针前面加了11个*,加原创 2015-11-27 20:27:16 · 1339 阅读 · 0 评论 -
细说C++对象模型
定义一个类Aclass A{private: char ch; int s ;}; 声明一个A的对象int main(){ A a; cout<<sizeof(a)<<endl; return 1;} 类A非常的简单,只定义了两个私有变量,实际执行时,sizeof(a)=8,稍有经验的同学可以看得出来,char原本只占1个字节,但是在对原创 2015-05-27 21:42:27 · 478 阅读 · 0 评论 -
C++ 文件及文件夹操作(二)
获取文件的创建时间,最后访问时间,最后修改时间,有时,程序需要知道文件的最后修改时间,以便获知是否被修改过使用windows的API FindFirstFile,可以非常方便的做到,获得到的时间类型是 FILETIME FILETIME 只是文件时间,我们要把它转换成系统时间,注意,系统时间有UTC和本地之分,本地系统时间就是你电脑里显示的时间,二UTC则比你电脑里的时间原创 2015-03-23 23:20:05 · 778 阅读 · 0 评论 -
C++ 模板之类模板
使用类模板,可以事先不确定成员变量的类型,假如我们要写一个先进后出的栈,这个栈既可以放入int,也可以放入long,还可以放入string,那么就需要使用模板技术,否则,类的成员变量将难以定义,因为,你事先不清楚放入栈中的是什么。 直接上代码template class Stack{private: T *ele; // 元素数组 int iCount;原创 2015-03-12 13:35:48 · 608 阅读 · 0 评论 -
c++ 文件及文件夹操作(三)
一、 获得文件夹下的所有文件路径void GetAllPath(const string& sSrcPath, vector& vtPath){ struct _finddata_t fileinfo; long lHandle = -1; int iFind = 0; string sFile = sSrcPath + "\\*.*"; lHandle = _findfirst原创 2015-03-27 16:18:49 · 1035 阅读 · 0 评论 -
c++文件及文件夹操作(一)
文件夹的操作和文件的操作有许多种方式,这一系列的文章将介绍C++对文件的操作,本篇blog介绍文件夹和文件的创建和删除,以及判断他们是否存在如何创建一个文件夹?1、 使用dos命令int FileOperate::CreateFolderByDos(string strName){ string strFolder = "md "; strFolder += strName;原创 2015-03-16 21:22:33 · 7027 阅读 · 0 评论 -
算法之字符串重组
算法题目:字符串重组输入:****a * b * c*.....输出:*******abc.....将所有的*都移动到字符串的前半部分,字符移动到后半部分,保证字符的顺序。思路:要保证字母的顺序不能发生变化,可以从后向前遍历字符串,遇到字母时,就把它往后移动,这样,最终所有的字母都在后面,可往后移动到哪里呢?可以设置一个标识位index,这个index表示这个位置可原创 2015-03-17 15:55:01 · 2011 阅读 · 0 评论 -
关于string的find()函数,你必须知道的一个坑
c++中的string,有一个方法是find(),每一个c++程序猿知道该函数的作用,但是,未必每一个c++程序猿都能正确的使用该函数 string str = "Welcome to China"; string str2 = "China"; int index = str.find(str2); 执行上面的代码,index的值为11,现在,请看下面这段原创 2015-03-09 17:46:14 · 4421 阅读 · 3 评论 -
指针,和指针的引用
先贴出代码 void TestReference::Fun1(Person *p){ p = new Person("张三",21);}void TestReference::Fun2(Person *p){ p->iAge = 28;}void TestReference::Fun3(Person* &p){ p = new Person("张三",21原创 2015-03-09 18:05:03 · 537 阅读 · 0 评论 -
C++ 运算符重载
技术,是实现目标的手段,重载运算符,可以让程序看起来更优美,更优美的程序更具有可读性,如果不重载,使用函数一样可以达到目的,但那样子程序看起来很蹩脚,直接上代码 #includeusing namespace std;class Demo{private: int index;public: Demo(int i) { index = i; } in原创 2015-03-10 16:45:12 · 509 阅读 · 0 评论 -
c++模板之函数模板
技术是实现目标的手段和方式,模板的存在,是为了让程序猿能编写出与类型无关的代码,而编写与类型无关的代码,则是为了代码的复用,让程序更美观,更容易维护,所有这些,都是为了提高生产效率。 函数模板的格式 template 返回类型 函数名(参数列表){函数体} 不论何时,都不要忘记template ,没有它,就不是模板了原创 2015-03-10 21:52:40 · 731 阅读 · 0 评论 -
C,C++ 常用的操作字符串的函数
小小的做一个总结函数名: stpcpy功 能: 拷贝一个字符串到另一个,遇到'\0'时停止拷贝,destin要有足够大的空间用 法: char *stpcpy(char *destin, char *source); 函数名: strcat功 能: 字符串拼接函数,注意,destin要有足够大的空间用 法: char *strcat(char *destin,原创 2015-03-12 16:54:35 · 775 阅读 · 0 评论 -
c++ 写注册表让程序开机自启动
打开注册表:win+R, 输入regedit 点击确定 你会看到五个根目录,开机自启动的信息写在 HKEY_LOCAL_MACHINE 下面,具体的目录为 SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run 要怎么将开机自启动的信息写入注册表中呢?其实过程很简单,第一步,打开注册表,第二步,写注册表,第三步,关闭原创 2015-03-13 12:01:40 · 9188 阅读 · 4 评论