C/C++/STL
oldmtn
WIN32, GDI/GDI+, VC/MFC, WIN8, Qt, ANDROID, Libevent, boost, ffmpeg, OPENGL等方面。
Happyiness is a journey not a destination. SoWork like you dont need money.Love like youve never been hurt.And Dance like no ones watching.... So Just Code like you dont need to run it successful.
展开
-
std::tr1::function
在C++的TR1中(Technology Report)中包含一个function模板类和bind模板函数,使用它们可以实现类似函数指针的功能,但却却比函数指针更加灵活,特别是函数指向类 的非静态成员函数时。可以参考Scott Meyers. >. Item 35.下面具体说明其使用方法。一、指向全局函数或静态成员函数时因为在本质上讲全局函数和静态成员函数没有区 别,使用方法上除了转载 2011-10-31 17:07:21 · 1110 阅读 · 0 评论 -
如何对list中部分元素排序
直接上代码// main.h#include "stdafx.h"#include "DateFile.h"int _tmain(int argc, _TCHAR* argv[]){ WORD wNum = 4; InitDlgList(wNum); WORD* pWordTar = GenerateDerangeOrder(wNum); DerangeDlglist原创 2012-07-11 17:26:07 · 2531 阅读 · 0 评论 -
new() new[]分配的区别
WORD * p1 = new WORD(3); WORD * p2 = new WORD[3]; int sWORD = sizeof(WORD); // 2 int msp1 = _msize(p1); // 2 int msp2 = _msize(p2); // 6 cout << *p1 << endl; // 3大家看后面的debug值就知道结果了。WOR原创 2012-07-17 17:02:35 · 810 阅读 · 0 评论 -
C++网络库总结
ACE - Adaptive Communication Environment http://www.cs.wustl.edu/~schmidt/ACE.htmlCommon G++ (GNU) Home or Socket Class ReferenceSocket++ version 1.11 http://www.cs.utexas.edu/users/lavender/cours转载 2012-08-04 00:27:10 · 1134 阅读 · 0 评论 -
C++中delete和delete[]的区别
一直对C++中的delete和delete[]的区别不甚了解,今天遇到了,上网查了一下,得出了结论。做个备份,以免丢失。 C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[]。 关于 new[] 和 delete[],其中又分为两种情况:(1) 为基本数据类型分配和回收空间;(2)转载 2012-07-20 12:06:06 · 878 阅读 · 0 评论 -
构造函数定义为private,protected
将构造函数,析构函数声明为私有和保护的,那么对象如何创建?已经不能从外部调用构造函数了,但是对象必须被构造,应该如何解决,麻烦大家帮忙说明,关于构造,析构函数声明为私有和保护时的用法??? 提出这个问题,说明你已经对c++有所思考了。从语法上来讲,一个函数被声明为protected或者private,那么这个函数就不能从“外部”直接被调用了。对于protected的函数,子类的“转载 2012-08-06 13:21:24 · 1011 阅读 · 0 评论 -
What's stdcall, cdecl, etc....
int function(int a,int b)调用时只要用result = function(1,2)这样的方式就可以使用这个函数。但是,当高级语言被编译成计算机可以识别的机器码时,有一个问题就凸现出来:在CPU中,计算机没有办法知道一个函数调用需要多少个、什么样的参数,也没有硬件可以保存这些参数。也就是说,计算机不知道怎么给这个函数传递参数,传递参数的工作必须由函数调用者转载 2012-08-01 10:01:52 · 1123 阅读 · 0 评论 -
ifndef和if !defined
在C/C++中,常使用下面的预处理方式避免重复包含头文件引起的重复定义问题://---------------------------------------------------------------------------------------------------------------------//第一种方式:使用ifndef#ifndef __HEADFILE_H_转载 2012-08-02 09:04:59 · 796 阅读 · 0 评论 -
堆和栈的区别(转过无数次的文章)
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两转载 2012-09-04 16:41:34 · 713 阅读 · 0 评论 -
C/C++获取当前系统时间
//方案— 优点:仅使用C标准库;缺点:只能精确到秒级#include #include int main( void ) { time_t t = time(0); char tmp[64]; strftime( tmp, sizeof(tmp), "%Y/%m/%d %X %A 本年第%j天 %z",localtime(&t) );转载 2013-04-15 11:38:11 · 1188 阅读 · 0 评论 -
list::sort() 源码解释
1 template 2 3 void list::sort() { 4 5 if (node->next == node || link_type(node->next)->next == node) return; 6 7 list carry; 8 9 list counter[64];10 11 int fill = 0;12 13转载 2012-07-11 13:26:06 · 1033 阅读 · 0 评论 -
const 成员变量初始化规则
const的成员变量只能在类的构造函数初始化,如下编译报错//const.h#includeclass CConst{public: CConst(); void print() { std::cout }private: const int cs;};//const.cpp#include"c转载 2012-06-27 09:56:40 · 9567 阅读 · 1 评论 -
VS2008+Boost+1_47_0+STLPort-5.2.1安装及使用配置
一.编译安装STLPort1、从STLPort官网http://www.stlport.org/下载STLport-5.2.1.tar.bz2,使用WinRar或其他工具将其解压到硬盘任何位置,本人解压到了C:\STLport,当然您也可以解压到其他路径中。补充说明下,截止本文发布时间,STLport最新稳定版为5.2.1。2、进入Visual Studio 2008命令行转载 2012-03-06 22:39:24 · 1430 阅读 · 0 评论 -
C++中的临时变量
它们是被神所遗弃的孩子,没有人见过它们,更没有人知道它们的名字.它们命中注定徘徊于命运边缘高耸的悬崖和幽深的深渊之间, 用自己短暂的生命抚平了生与死之间的缝隙.譬如朝露,却与阳光无缘.是该为它们立一座丰碑的时候了,墓铭志上写着:我来了,我走了,我快乐过. 许多人对临时变量的理解仅仅限于: string temp; 其实,从C++的观点来看,这根本就不是临时变转载 2012-03-09 16:41:14 · 765 阅读 · 0 评论 -
标准c++的类型转换符之间的区别(static_cast,dynamic_cast,const_cast,reinterpret_cast)(转载)
C 风格(C-style)强制转型如下: (T) expression // cast expression to be of type T 函数风格(Function-style)强制转型使用这样的语法: T(expression) // cast expression to be of type T 这两种形式之间没有本质上的不同,它纯粹就是一个把括号放在哪的问题。我把转载 2012-04-10 17:46:01 · 691 阅读 · 0 评论 -
关于STL-MAP讲的很不错的一篇文章
一:map是关联式容器,它提供一对一的映射。存储的数据有两个部分,一个是关键字,一个是值,其中关键字只能出现一次,而不同的关键字,可以有相同的值。map中用pair来存储这两个值的。pair是stl定义的一种数据结构,后面会有简述。map内部自建一颗红黑树,所有map里面的数据都是有序的。二:方法1.构造函数,map有6个构造函数。但是我们通常用map m;这种方法来构造一个map转载 2012-04-12 18:17:09 · 862 阅读 · 0 评论 -
C++著名程序库的比较和学习经验(STL.Boost.GUI.XML.网络等等)
1、C++各大有名库的介绍——C++标准库2、C++各大有名库的介绍——准标准库Boost3、C++各大有名库的介绍——GUI4、C++各大有名库的介绍——网络通信5、C++各大有名库的介绍——XML6、C++各大有名库的介绍——科学计算7、C++各大有名库的介绍——游戏开发8、C++各大有名库的介绍——线程9、C++各大有名库的介绍——序列化10、C++各大有转载 2012-05-08 12:59:22 · 1690 阅读 · 0 评论 -
虚析构函数(√)、纯虚析构函数(√)、虚构造函数(X)
我们知道,为了能够正确的调用对象的析构函数,一般要求具有层次结构的顶级类定义其析构函数为虚函数。因为在delete一个抽象类指针时候,必须要通过虚函数找到真正的析构函数。如:class Base{public: Base(){} virtual ~Base(){}};class Derived: public Base{publi转载 2012-05-14 15:45:02 · 702 阅读 · 0 评论 -
win7+vs2008下安装配置STLport
STLprot是一个完全符合C++98标准的一个免费跨平台的C++标准库实现。经测试,windows MSVC平台下,STLport的运行速度比VC8自带的STL(Dinkumware v405)大约块一倍,比VC9自带的STL(Dinkumware V503)快约10percent。所以我们可以使用STLport代替MSVC自动的Dinkumware STL 进行windows平转载 2012-06-10 19:17:00 · 1302 阅读 · 0 评论 -
STL中的List排序问题
最近想钻研一下STL源代码,于是照着侯捷的《STL源码剖析》看SGI STL,今天想写写list的排序算法。源代码如下: template template void list::sort(_StrictWeakOrdering __comp){ // Do nothing if the list has length 0 or 1. if (_M_node-转载 2012-05-24 17:05:39 · 820 阅读 · 0 评论 -
零碎记录
// ASCII字符 十六进制 十进制() DWORD dwA0 = 'A'; // 'A' 41 65 DWORD dwA1 = '0A'; // '0A' 30 41 12353 DWORD dwA2 = '00A'; // '00A' 30 30 41 3158081 DWORD dwA3 = '000A'; // '000A' 30 30 30 41 8原创 2012-07-05 13:58:55 · 637 阅读 · 0 评论 -
Vector相关用法
字符数组内容 与 vector内容互相kaobe原创 2014-06-05 09:04:01 · 853 阅读 · 0 评论