09 2012 档案

 
C++内联函数
摘要:C++有三种方式实现内联函数:1. 将函数的定义写在类定义的内部;2. 在类定义内部的函数声明上用inline显式指定;3. 在类定义体外部的函数实现上用inline显式指定;#include<iostream>usingnamespacestd;classSample{public:voidinline01(){cout<<"";}inlinecharinline02()const;intinline03();};charSample::inline02()const{return'w';}inlineintinline03(){r 阅读全文
posted @ 2012-09-23 15:39 做个不善的人 阅读(3917) 评论(0) 推荐(0)
C++ 的intialization list 和assignment
摘要:[补充]如果一个类的所有成员都是public的,而且没有默认构造函数,就可以使用intialization list对类的成员进行初始化。三大法#include<iostream>#include<map>usingnamespacestd;classA{public:A(inta):i(a),j(a){//i=a;//iisnotmodifiablehere}constinti;int&j;};classB:publicA{public:B():A(0){}B(inta):A(a)//B'sbaseclassAonlyhasoneconstructor 阅读全文
posted @ 2012-09-17 19:53 做个不善的人 阅读(4654) 评论(0) 推荐(0)
理解C++的RTTI
摘要:C++的RTTI包含三部分内容:dynamic_cast, typeid和type_info(很少直接使用,但是需要了解一下,type_info的定义是由编译器定的,但是共同的是它包含一个name()函数)。 #include <iostream>#include <typeinfo>usingnamespace std;class Base1{};class Derive1 : public Base1{};class Base2{ virtualvoid fun( void ) {}};class Derive2 : public Base2{};class Der 阅读全文
posted @ 2012-09-17 08:16 做个不善的人 阅读(4550) 评论(0) 推荐(1)
最长递增/递减子序列
摘要:《编程之美》里有个题目是要求数组中最长递增子序列,在CSDN上看到的题目是数组中的最长递减子序列。题目如下: 求一个数组的最长递减子序列 比如{9,4,3,2,5,4,3,2}的最长递减子序列为{9,5,4,3,2} 求一个数组的最长递增子序列 比如{1,-1,2,-3,4,-5,6,-7}的最长递减子序列为{1,2,4,3,6} 最长递增序列和最长递减子序列的解法是一样的,最不济,也可以先revert,求完再revert一次。 首先我们得搞清一个范围问题,虽然我们要的是一个最大值,但是是不是他是可以递推的呢,就是我只保存一个最大值,然后不断增加这个值,直觉上看应该是不太现实的,比如:1234 阅读全文
posted @ 2012-09-15 14:42 做个不善的人 阅读(7283) 评论(0) 推荐(3)
Windows 异常处理(Structured Exception Handling)
摘要:这个也得看!http://msdn.microsoft.com/en-us/library/ms680657(v=vs.85).aspx 阅读全文
posted @ 2012-09-13 19:47 做个不善的人 阅读(202) 评论(0) 推荐(0)
C++异常处理之二 (How a VC++ compiler implements exception handling)
摘要:先占个地,看了一半,找时间全部翻译一下,很好的文章 摘译自:http://www.codeproject.com/Articles/2126/How-a-C-compiler-implements-exception-handling 一篇很好的总结文章: C与C++中的异常处理.pdf 下载地址是:http://ishare.iask.sina.com.cn/f/19763181.html 阅读全文
posted @ 2012-09-13 19:25 做个不善的人 阅读(273) 评论(0) 推荐(0)
C++异常处理之一
摘要:Exception specifications Exception specifications are used to provide summary information about what exceptions can be thrown out of a function. For example:voidMyFunction(inti)throw(...);An exception specification with an empty throw, as invoidMyFunction(inti)throw();tells the compiler that the fun 阅读全文
posted @ 2012-09-13 18:24 做个不善的人 阅读(552) 评论(0) 推荐(0)
Compare “overriding”, “overloading“ and “name hiding” in C++
摘要:C++中这几个概念非常相似,很容易混淆,在编程时也很容易导致错误 “name hiding” 是指在类的继承层次中,基类和子类共享想同名字的变量或者方法,从而导致父类的名称在子类中不可见。这种现象在c中也很普遍,比如: intiCnt=1;func(inti){intiCnt=2};//在这个函数中,所有和iCnt相关的操作都是使用函数的局部变量,这时外部的iCnt被隐藏。func(iCnt);下面给出一个类的实例: classB1{public:intnV;voidfun(){cout<<"MemberofB1"<<endl;}};classB2{ 阅读全文
posted @ 2012-09-12 10:01 做个不善的人 阅读(885) 评论(0) 推荐(0)
C++中的const关键字(zz)
摘要:【补充】mutable关键字有时我们希望类的数据成员即使在const成员函数中,依然是可以修改的,这时就可以把它们声明为mutable来实现。这样的应用,比如记录各种操作的调用次数,这时,即使在const中,依然要修改计数器,就可以将计数器变量设置为mutable的。【补充】this指针与const类ClassSample中:非const的成员函数中,this的类型是一个指向类类型的const指针,相当于:ClassSample const *this;这时,可以改变对象,但不能让this指向另外一个地址;在const的成员函数中,this的类型是一个指向const类类型的const指针,相当 阅读全文
posted @ 2012-09-11 15:43 做个不善的人 阅读(546) 评论(0) 推荐(0)
理解volatile关键字(zz)
摘要:一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子:1) 并行设备的硬件寄存器(如:状态寄存器)2) 一个中断服务子程序中会访问到的非自动变量(Non-automatic variables)3) 多线程应用中被几个任务共享的变量编译器在编译代码时,会进行自动优化,用以产生优化指令。同上操作系统和一些线程同样也会对你所定义的一些变量做出一些你所不知道的更改。这样的更改我们称为,隐式修改,因为你不知道 阅读全文
posted @ 2012-09-11 10:45 做个不善的人 阅读(386) 评论(0) 推荐(0)
字符串问题分析方法
摘要:对于这样一类题目:输入是一个序列或者一个集合,求出满足条件的另一个序列或者集合。 这样的问题往往可以这样分析: 结果中包含某个元素x结果中包含某个元素x,并且按照以x开头或者结尾(适用于有序序列),或者保持某个相对顺序,像这一类问题,应该是只需要考察这几个可能出现的位置,而且考察一遍之后,不需要重复考察。但是,这一类问题的关键是需要知道什么时候考察某个元素的可能问题 下面是一个例子: 一个字符串,如果它的每个字符都不一样,那么它是unique的;如果str1可以通过将str2中的某些字符删掉而得到,那么str1是从时str2中producible的;如果str1的长度比str2的长度大,那么s 阅读全文
posted @ 2012-09-06 08:31 做个不善的人 阅读(692) 评论(0) 推荐(0)
回溯法、分支界限与动态规划
摘要:回溯法已经接近一种穷举搜索的算法了,可以说效率不是很高,而且往往用来求解求所有解的问题,比如说求出八皇后问题的所有解。 分支界限也比较类似回溯法。 在实现动态规划算法时,一般第一步就是实现递归版本的。但是一定要切记的是能递归的不一定是动态规划算法。 动态规划算法的实现需要有最优子结构的特征,下面是一个例子: 一个字符串是由 阅读全文
posted @ 2012-09-03 08:23 做个不善的人 阅读(1749) 评论(0) 推荐(0)