
C/C++
alex_my
不要忘记学习
展开
-
构造和析构
class CA{public: CA() { std::cout<<"CA construction"<<std::endl;}; ~CA(){ std::cout<<"CA destruction"<<std::endl;}; // 无virtual};class CB : public CA{public: CB() { std::cout<<"CB原创 2012-11-14 22:21:21 · 596 阅读 · 0 评论 -
重载、覆盖和隐藏
部分文字内容摘自《高质量C++/C编程》 链接:http://man.chinaunix.net/develop/c&c++/c/c.htm#_Toc520634042 1 重载 Overload 1) 相同的范围,在同一个类中。 2) 函数名相同,参数不同。 3) virtual可有可无。 这在平时设计中用的比较多,比如游戏中角色说话,原创 2014-04-02 11:15:22 · 722 阅读 · 0 评论 -
线程同步与锁
二元信号量,多元信号量,互斥量,临界区。其它包括读写锁,条件变量。-1:二元信号量,适合与只能被一个线程独占访问的资源。当二元信号量处于非占用状态时,第一个试图获取该二元信号量的线程会获得该锁,并将二元信号量重置为占用状态,在未释放该锁前,其它所有试图获取该二元信号量的线程将会等待。-2:多元信号量,简称信号量。一个初始值为N的信号量允许N个线程并发访问。 获取原创 2014-07-19 11:08:06 · 946 阅读 · 0 评论 -
C++ 智能指针的使用
测试环境:win7, vs2012 涉及智能指针:shared_ptr, weak_ptr, scoped_ptr, auto_ptr 其它:enable_shared_from_this 总调用函数:void testSmartPointer() 可以将其放在main()中运行。解释在代码中。#include #include #include #include #i原创 2013-12-28 18:54:50 · 2297 阅读 · 1 评论 -
va_list,va_start,va_arg,va_en
在代码中常见到可变参数。截取一段cocos2d-x的代码: CCArray* CCArray::create(CCObject* pObject, ...){ va_list args; // 这个变量是指向参数的指针,typedef char * va_list va_start(args,pObject);// 初始化args指针,第二个参数存放第一个可变参数的原创 2013-05-22 16:41:08 · 832 阅读 · 0 评论 -
multimap的查找
假设有一个multimap定义: typedef std::multimap MULTIMAP_MATCH;typedef MULTIMAP_MATCH::iterator MULTIMAP_MATCH_IT;typedef std::pair PAIR_MATCH_RANGE;MULTIMAP_MATC原创 2012-12-14 18:39:08 · 2151 阅读 · 0 评论 -
Some Little Tips
1、以前在代码中常见到typedef与struct结合的用法。 typedef struct Msg{ int x; int y;}Msg_Info;Msg_Info* m_pInfo; 没typedef感觉差不了多少。今天看一文章发现,原来在旧的C语言中,声明结构体对象需要带struct。struct Msg{ int x; int原创 2013-05-22 11:38:00 · 735 阅读 · 0 评论 -
遍历vector容器的效率问题
今天看到关于vector遍历效率问题,以前遍历的时候却没有关心这些,实为惭愧。自己写了点代码放在vs2012上运行,得到结果和原来的博客上内容不符合。看来应该还有与平台和编译器优化有关。 代码如下:#include "stdafx.h"#include #include #include #include int _tmain(int argc, _TCHAR原创 2013-03-17 22:49:13 · 8039 阅读 · 0 评论 -
find_if 仿函数错误:cannot convert 'this' pointer from 'const CActTaskData' to 'CActTaskData &'
今天编写find_if的仿函数时编译报错,cannot convert 'this' pointer from 'const CActTaskData' to 'CActTaskData &'。 struct act_task_finder { public: act_task_finder(const OBJID objId) : m_ObjId(objId)原创 2013-03-12 18:25:02 · 1285 阅读 · 0 评论 -
MFC 打开文件夹读取图片
主要使用CFileDialog类实现:// void ReadSource()void ReadSource(){ CFileDialog ccFileDlg(TRUE, NULL, NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT, _T("Image files(*.png; *.jpg)|*.原创 2013-02-28 18:01:47 · 11421 阅读 · 2 评论 -
C++ 存储指定文件夹下的文件
指定文件夹地址,然后读取文件夹内容。 file.h#include #include #include /** 定义于io.h* 1、long _findfirst64i32(const char * _Filename,struct _finddata64i32_t * _FindData);* 查找第一个_Filename的信息,存储到结构体_FindData中 * 查找原创 2013-02-28 17:56:00 · 4163 阅读 · 0 评论 -
遍历中stl erase 的使用
vector(deque)是一个顺序容器,erase后,后面的元素自动前移,后面所有迭代器失效(地址前移)对顺序容器的erase正确操作方法是使用erase的返回值,erase返回被删元素的下一个元素地址。 // 假设vec中只存放一个值iterator container::erase(iterator pos)for(; iter != vec.end(); ) // iter原创 2012-12-28 19:42:13 · 1693 阅读 · 0 评论 -
C/C++内存存储的几个问题
转来转去,点击链接已经无法找到当时写这文章的人了,因此,标题也被我修改了(邪恶了),内容也做了一些的修改。一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。3、全局区(静态区)(static)—,全局变量转载 2013-01-28 15:36:14 · 593 阅读 · 0 评论 -
txt文件导入到mysql中
mysql库中已有表demo(id, word) 1、首先,删除id字段 2、然后将放在D盘的txt文件插入 load data local infile 'd:/name.txt' into table demo(word); 3、将id恢复 alter table `demo` add column `id` int not原创 2012-12-12 14:30:59 · 1307 阅读 · 0 评论 -
随机函数与概率设置
转载至浅墨的博客一、random函数不是ANSI C标准,不能在gcc,vc等编译器下编译通过。 可改用C++下的rand函数来实现。 1、C++标准函数库提供一随机数生成器rand,返回0-RAND_MAX之间均匀分布的伪随机整数。 RAND_MAX必须至少为32767。rand()函数不接受参数,默认以1为种子(即起始值)。 随机数生成器总是以相同的种子开始,所以形成的伪随机数转载 2012-12-09 14:22:35 · 978 阅读 · 0 评论 -
学习使用CMake构建工程
本文记录学习使用CMake的过程。 安装CMake请参考: http://blog.youkuaiyun.com/alex_my/article/details/17310001 本文使用Win7X64, VS2012。 参考了这篇文章: http://blog.youkuaiyun.com/fan_hai_ping/article/details/8208898 本...原创 2014-02-08 12:08:35 · 26798 阅读 · 2 评论