随笔分类 -  C++

摘要:通常我们的做法是(尤其是在学习阶段):定义一个新的变量,借助它完成交换。代码如下:int a,b;a=10; b=15;int t;t=a; a=b; b=t;这种算法易于理解,特别适合帮助初学者了解计算机程序的特点,是赋值语句的经典应用。在实际软件开发当中,此算法简单明了,不会产生歧义,便于程序员... 阅读全文
posted @ 2014-10-12 20:58 虾米的虾皮 阅读(214) 评论(0) 推荐(0)
摘要:当读者有一定c/c++基础推荐的阅读顺序:level 1从>开始,短小精悍,可以对c++能进一步了解其特性以>作字典和课外读物,因为太厚不可能一口气看完level 2然后从>开始转职,这是圣经,请遵守10诫,要经常看,没事就拿来翻翻接着是>,个人认为Herb Sutter主席大人的语言表达能力不及S... 阅读全文
posted @ 2014-09-03 13:37 虾米的虾皮 阅读(167) 评论(0) 推荐(0)
摘要:一、sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实... 阅读全文
posted @ 2014-08-27 11:13 虾米的虾皮 阅读(134) 评论(0) 推荐(0)
摘要:strcpy:字串复制 原型:char *strcpy(char *dest, char *src); 功能:把src所指由'\0'结束的字符串复制到dest所指的数组中。 说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向dest的指针。 注意:当src串长度>dest串长度时,程序仍会将整个src串复制到dest区域,可是dest数组已发生溢出。 因此会导致dest栈空间溢出以致产生崩溃异常。如果不考虑src串的完整性,可以把dest数组最后一元素置为NULL,从dest串长度处插入NULL截取字串。strncpy: 阅读全文
posted @ 2014-03-20 18:45 虾米的虾皮 阅读(384) 评论(0) 推荐(0)
摘要:转自http://www.cnblogs.com/skynet/archive/2010/09/05/1818636.html函数重载的重要性不言而明,但是你知道C++中函数重载是如何实现的呢(虽然本文谈的是C++中函数重载的实现,但我想其它语言也是类似的)?这个可以分解为下面两个问题1、声明/定义重载函数时,是如何解决命名冲突的?(抛开函数重载不谈,using就是一种解决命名冲突的方法,解决命名冲突还有很多其它的方法,这里就不论述了)2、当我们调用一个重载的函数时,又是如何去解析的?(即怎么知道调用的是哪个函数呢)这两个问题是任何支持函数重载的语言都必须要解决的问题!带着这两个问题,我们开始 阅读全文
posted @ 2014-03-14 14:54 虾米的虾皮 阅读(203) 评论(0) 推荐(0)
摘要:char* wchar* char wchar转换简单方法把char*转换为wchar_t*用stdlib.h中的mbstowcs_s函数,可以通过下面的例子了解其用法:char*CStr="stringtoconvert";size_tlen=strlen(CStr)+1;size_tconverted=0;wchar_t*WStr;WStr=(wchar_t*)malloc(len*sizeof(wchar_t));mbstowcs_s(&converted,WStr,len,CStr,_TRUNCATE);其结果是WStr中储存了CStr的wchar_t版本。 阅读全文
posted @ 2014-03-11 21:29 虾米的虾皮 阅读(1540) 评论(0) 推荐(0)
摘要:C++中map容器提供一个键值对容器,map与multimap差别仅仅在于multiple允许一个键对应多个值。 一、map的说明1头文件#include2定义mapmy_Map;或者是typedefmapMY_MAP;MY_MAPmy_Map;3插入数据(1)my_Map["a"]=1;(2)my_Map.insert(map::value_type("b",2));(3)my_Map.insert(pair("c",3));(4)my_Map.insert(make_pair("d",4));4查找数据和修改数 阅读全文
posted @ 2014-03-08 19:23 虾米的虾皮 阅读(273) 评论(0) 推荐(0)