2013年4月21日
摘要:
在XP平台使用VC++6.0编译运行如下代码:1 char *s="AAA";2 printf("%s\n",s);编译运行一切正常,但如果在加入一些代码,例如:1 char *s="AAA";2 printf("%s\n",s);3 s[0]='B';4 printf("%s\n",s);编译通过,但运行过程中输出“AAA”之后,系统弹出“带调试的发送错误报告”对话框,问题表现出来啦。 这其实是一个概念性的问题,AAA是字符串常量,为了对它进行操作,定义了一个指针char *s
阅读全文
posted @ 2013-04-21 10:41
毋忆典藏
阅读(307)
推荐(0)
2013年4月18日
摘要:
1. 《C++ primer》变量名典型选记Key变量名表示其它1line_no行号2line_num行数3index索引4#define TIMER_SEC 1每秒更新的计时器5#define TIMER_MIN 2每分更新的计时器678910函数名及索引备忘函数名功能简介索引或备忘memfcn()成员函数名2.《》
阅读全文
posted @ 2013-04-18 10:46
毋忆典藏
阅读(159)
推荐(0)
2013年4月16日
摘要:
程序的输入一般有:标准的输入设备、磁盘文件或默认的变量初始值,通常前两种是必须的,程序的功能就是用来处理输入的内容。标准IO库提供类一些操作,例如 stringstream,使用这些操作可以是程序的处理简洁方便,下面是《C++ Primer》中的一个例子:1 string line, word; // will hold a line and word from input, respectively 2 while (getline(cin, line)) { // read a line from the input into lin...
阅读全文
posted @ 2013-04-16 17:58
毋忆典藏
阅读(156)
推荐(0)
2013年4月15日
摘要:
“使用下标访问 map 对象”有不少细节值得记忆,为此,《C++ Primer》中还单列一个标题“下标行为的编程意义”,其中的举例就是下面这段代码,自己先理解代码,然后再去看相关解析,会发现,其实他包含的内容比想到的多,未来编程过程中可能频繁遇到类似使用,在此做个印象提醒:1 // count number of times each word occurs in the input 2 map<string, int> word_count; // empty map from string to int 3 string word; 4 whil...
阅读全文
posted @ 2013-04-15 19:05
毋忆典藏
阅读(249)
推荐(0)
摘要:
map有一个构造函数:map<k, v> m(b, e);《C++ Primer》解释为:“创建 map 类型的对象 m, 存储迭代器 b 和 e 标记的范围内所有元素的副本,元素的类型必须能转换为 pair<const k, v>”,这个构造函数理解起来没有另外两个容易:1 map<k, v> m;2 map<k, v> m(m2); 在接下来的阅读中找到了学习map的关键点,那就是:键类型、值类型和value_type,value_type即“元素类型”。以数组为例:int a[5];它的value_type即元素的类型就是int。回头来看:
阅读全文
posted @ 2013-04-15 18:34
毋忆典藏
阅读(322)
推荐(0)
摘要:
“pair”是一个“简单的标准库类型,也是一种模板类型”,其常规的定义形式如下:1 pair<string, string> anon; // holds two strings 2 pair<string, int> word_count; // holds a string and an int 3 pair<string, vector<int> > line; // holds string and vector<int> 这种定义形式一目了然,但正如《C++ Primer》所说:“pair 类型的使用相当繁琐”,考虑到效率和
阅读全文
posted @ 2013-04-15 13:36
毋忆典藏
阅读(285)
推荐(0)
2013年4月12日
摘要:
记录一些MSDN和cplusplus的使用心得,明细它们分工的不同,方便日后对症搜索。 总体而言 MSDN包含的内容很多,不止C或C++相关的内容,搜索到的结果需要适当筛选,cplusplus在这方面有一定优势,关键字搜索正确便可直取所需。 内容方面 1.可以举一个例子说明他们优势的不同:在查阅MSDN的时候看到这样一段代码:1 // Declares stack with default deque base container2 stack <char> dsc1;也就是说,在没有给出容器类型说明时,stack默认关联的是deque容器,但在MSDN中并没有找到对这句...
阅读全文
posted @ 2013-04-12 16:51
毋忆典藏
阅读(177)
推荐(0)
2013年4月10日
摘要:
在看《C++ Primer》之前,使用过的string类型的操作主要有,string对象的赋值、相加、关系运算、size操作,为数不多,今天阅读《C++ Primer》的“9.6节 再谈string类型”,发现原来string提供了这么丰富的操作。因为丰富,查阅起来会比较繁琐,不容易得到要领,在此对其支持的功能罗列总结一下,做一个索引,这样处理问题时,能不能够用string提供的功能、怎样使用就一目了然。 如果可以处理,就根据索引查阅MSDN,选择合适的重载函数。例如:根据功能需要在MSDN中搜索“string::append”,在“Visual Studio 2012”版本中,该函数共...
阅读全文
posted @ 2013-04-10 22:16
毋忆典藏
阅读(270)
推荐(0)
2013年4月9日
摘要:
像这种定义形式 typedef int int_array[4];int_array 其实是int的别名,而int_array[4]就是定义的形式啦,去看看《C程序设计》谭浩强版相关的部分就会发现:typedef还可以命名一个新的类型代表:指针类型、指向函数的指针类型等等例如:命名一个新的类型代表:指针类型1 typedef char * String; //声明String为字符指针类型2 String p,s[10]; //定义p为字符指针变量,s为字符指针数组 命名一个新的类型代表:指向函数的指针类型1 typedef int (* Pointer)(); //...
阅读全文
posted @ 2013-04-09 17:54
毋忆典藏
阅读(213)
推荐(0)
摘要:
引言 学C和C++的相当长的一段时间里,开发过程中遇到的问题都是从百度谷歌查找,因为目前的中文资料很丰富,足以解决程序员遇到的常见问题。但很明显,这是一个很繁琐、很无规律性、很耗时间的办法,最关键它无法保证查到结果的正确性和权威性,尤其对比使用MSDN的时候,这些问题显现的尤为明显。 最初看到MSDN是在孙鑫视频中,很多API、函数等查起来得心应手,速度很快,我在在线版MSDN中使用的时候,却达不到这样的效果,搜索一个关键词会出来很多条搜索结果,关键里面通常还没有要找的那个,今天在看《C++ Primer》,偶然间寻得一个方法,可以作为MSDN查询的入门: 入门点滴1: 有一个操...
阅读全文
posted @ 2013-04-09 14:40
毋忆典藏
阅读(311)
推荐(0)