摘要:这是微软帮助文档中对集合(set)的解释: “描述了一个控制变长元素序列的对象(注:set中的key和value是Key类型的,而map中的key和value是一个pair结构中的两个分 量)的模板类,每一个元素包含了一个排序键(sort key)和一个值(value)。对这个序列可以进行查找、插入、删除序列中的任意一个元素,而完成这些操作的时间同这个序列中元素个数的对数成比例关 系,并且当游标指向一个已删除的元素时,删除操作无效。” 而一个经过更正的和更加实际的定义应该是:一个集合(set)是一个容器,它其中所包含的元素的值是唯一的。这在收集一个数据的具体值的时候是有用的。集 合中的元素按一 阅读全文
c++ ifstream ofstream 文件流
2014-03-13 17:08 by George.He, 353 阅读, 0 推荐, 收藏,
摘要:#include ofstream //文件写操作 内存写入存储设备 ifstream //文件读操作,存储设备读区到内存中 fstream //读写操作,对打开的文件可进行读写操作打开文件:voidopen(constchar*filename,ios_base::openmodemode=ios_base::in|ios_base::out); 或ifstream if("data.txt"); 默认构造函数和open原型一样。本文件的读写类ofstream, ifstream 和fstream 是分别从ostream, istream 和iostream 中引申而来的 阅读全文
内存对齐理解
2014-03-13 16:54 by George.He, 202 阅读, 0 推荐, 收藏,
摘要:每个特定平台上的编译器都有自己的默认“对齐系数”(也叫对齐模数)。程序员可以通过预编译命令#pragma pack(n),n=1,2,4,8,16来改变这一系数,其中的n就是你要指定的“对齐系数”。vs默认是#pragma pack(8)注意gcc默认是#pragma pack(4),并且gcc只支持1,2,4对齐。。1:数据成员对齐规则:结构(struct)(或联合(union))的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员存储的起始位置要从该成员大小或者成员的子成员大小(只要该成员有子成员,比如说是数组,结构体等)的整数倍开始(比如int在32位机为4字节,则要从 阅读全文
C++中模块(Dll)对外暴露接口的几种方式
2012-09-02 16:15 by George.He, 939 阅读, 0 推荐, 收藏,
摘要:总结下C++中模块(Dll)对外暴露接口的方式: (1)导出API函数的方式 这种方式是Windows中调用DLL接口的最基本方式,GDI32.dll, User32.dll都是用这种方式对外暴露系统API的。 这种方式的优点是导出函数没有语言限制,什么语言都能调用; 缺点是这种方式是面向过程的,外部如果要支持多实例等不是很方便,另外它要求的回调函数(callback)只能是普通C函数,C++中我们通常用类静态成员函数,很不方便。 当然,我们通过封装其实也可以让这种方式支持多实例,通过一个抽象句柄HComponent, 比如支持导出函数HComponent CreateInstance(); 阅读全文
C++复习笔记---浅谈拷贝构造函数和赋值构造函数
2012-09-02 16:14 by George.He, 99 阅读, 0 推荐, 收藏,
摘要:1.拷贝构造函数的形式对于类X,如果它的函数形式如下a) X&b) const X&c) volatile X&d) const volatile X&且没有其他参数或其他参数都有默认值,那么这个函数是拷贝构造函数X::X(const X&);是拷贝构造函数X::X(const X&,int val = 10);是拷贝构造函数2.一个类中可以存在超过一个拷贝构造函数class X {public: X(const X&); X(X&); // OK};编译器根据实际情况调用const拷贝构造函数或非const的拷贝构造函数3.默认 阅读全文
浙公网安备 33010602011771号