代码改变世界

随笔分类 -  c++

2012年8月24日学习笔记---程序员面试宝典--循环、递归和概率

2012-08-23 22:14 by javaspring, 211 阅读, 收藏,
摘要: 程序员面试宝典之输入两个字符串,比如abdbcc和abc,输出第二个字符串在第一个字符串中的连接次序,即输出125,126,145,146 #include <iostream> #include <string.h> #include <list> using namespace std; list<int>list_num; char p[10]="abdbcc"; char q[10]="abc"; void findLink(int i,int j) { if(!p[i]||!q[j]) retur 阅读全文

二进制转换为十进制(包括小数转换)

2012-08-21 10:37 by javaspring, 812 阅读, 收藏,
摘要: 小数点以下,第一位 是 2 的 负1次方,第二位 是 2 的 负2次方,第N位 是 2 的 负N次方. 2 的 负1次方 = 1.0 / 2.0 2 的 负2次方 = 1.0 / 2.0 / 2.0 2 的 负N次方 = 1.0 / 2.0 / 2.0 / ..../2.0 (共N个2.0) 把它们累加起来就是10进制小数点以下部分。 小数点以前,不用说了吧,第一位是 2 的 0 次方,第二位是 2 的 1 次方,第M位 是 2 的 M-1次方, 把它们累加起来就是10进制小数点以前部分。 阅读全文

无向图邻接表怎么建,求指点!! HDU 2544 最短路(Dijkstra、结题报告 精简版!)

2012-08-06 01:42 by javaspring, 312 阅读, 收藏,
摘要: 转载请注明出自cxb569262726:http://write.blog.csdn.net/postedit题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=2544代码:#include<iostream> #include<stdio.h> #include<stdlib.h> #include<string.h> #define MAXN 105 #define INF 100000 using namespace std; int map[MAXN][MAXN],used[105],d[105 阅读全文

两行代码,理解了一个小时! 两个数组记录邻接表! ( 刘汝佳白书)

2012-08-05 00:53 by javaspring, 212 阅读, 收藏,
摘要: #include<iostream> #include<algorithm> #include<stdio.h> #include<stdlib.h> #include<string.h> #include<queue> #include<math.h> #include<set> #include<vector> #define MAXN 15 #define INF 1000 int main() { int i,j,n,m,t,c; int first[MAXN]; int u[M 阅读全文

HDU 1151Air Raid 最小路径覆盖=n-最大匹配量 (第二道二分匹配)

2012-07-30 03:44 by javaspring, 154 阅读, 收藏,
摘要: #include<iostream> #include<stdio.h> #include<math.h> #include<string.h> #include<stdlib.h> #include<algorithm> using namespace std; int map[125][125],ve[125],vs[125]; int s,e; int getpath(int u) { int i; for(i=1;i<=s;i++) { if(!map[u][i] || ve[i]) continue; .. 阅读全文

HDU 2063过山车 解题报告(我的第一道二分匹配)

2012-07-30 02:36 by javaspring, 167 阅读, 收藏,
摘要: 题目连接http://acm.hdu.edu.cn/showproblem.php?pid=2063下面是复制别人的解析后根据我不懂的地方自己补充修改的:二部图(也叫二分图)概念:1.何为二部图 如果V(G)可以分到两个集合X,Y中,且X和Y内部没有G的边.那么图G就是一个二部图(等价于图G是可二顶点着色的)下图便是一个二部图. 2.二部图的性质 一个图是二部图当且仅当图G中没有奇环.比如说一个三角形就不可能分成两个部分,并且每个部分内部没有边,但一个正方形就可以.3.如何得到二部图的每个部分 任意选一个顶点,所有到该点距离为偶数的点构成的集合便是G中的一部分,距离为奇数的点为另一部分... 阅读全文

HDU 1114Piggy-Bank(完全背包) 解题报告

2012-07-29 21:10 by javaspring, 176 阅读, 收藏,
摘要: Problem DescriptionBefore ACM can do anything, a budget must be prepared and the necessary financial support obtained. The main income for this action comes from Irreversibly Bound Money (IBM). The idea behind is simple. Whenever some ACM member has any small money, he takes all the coins and throws 阅读全文

HDU 4252 A Famous City 解题报告

2012-07-20 09:56 by javaspring, 190 阅读, 收藏,
摘要: A Famous CityTime Limit: 10000/3000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 472Accepted Submission(s): 190Problem DescriptionAfter Mr. B arrived in Warsaw, he was shocked by the skyscrapers and took several photos. But now when he looks at these photos, he finds 阅读全文

HDU 2546 饭卡(01背包) 解题报告

2012-07-18 09:10 by javaspring, 163 阅读, 收藏,
摘要: 原文链接: http://acm.hdu.edu.cn/showproblem.php?pid=2546昨天吧背包九讲中最基础的01背包看完,做了2602。结果晚上比赛相同题目却做不出。。苦想几个小时。。。解题思路:要使剩余钱最少,应该留下块钱买最贵的东西(标记为t)(注意金额m<5 的情况!!) 接下来就是用剩下的m-5元买除t以外的菜。每种菜只能买一次。就构成背包问题。代码:#include<stdio.h> #include<math.h> #include<string.h> #include<stdlib.h> #include& 阅读全文

c++ 学习链接

2012-06-14 23:08 by javaspring, 161 阅读, 收藏,
摘要: 1chinaitlab实验室------c++2 阅读全文

消息类和消息所在的目录类....

2012-04-29 12:59 by javaspring, 152 阅读, 收藏,
摘要: #ifndef MESSAGE_H #define MESSAGE_H #include <iostream> #include <set> class Message; class Folder { public: Folder(){} Folder(const Folder& f); Folder& operator=(const Folder& rhs); ~Folder(); void save(Message& m); void remove(Message& m); void remMes(Message* m); v 阅读全文

c++之复制构造函数为何形参是引用传递

2012-04-21 15:49 by javaspring, 642 阅读, 收藏,
摘要: 在c++中,其实需要自己定义类的”复制控制的三大函数“--------要么是因为类的成员变量中有指针类型....要么就是有特殊的操作想要实施,所以你就想:“要不要自己定义一个复制构造函数呢?”..... 复制控制的三大函数如同三国演义中的“刘关张三兄弟”.......扬名之战就只是-----虎牢关下逼退吕布(指针型的成员变量)....... 吕布同学很牛,谁一不小心就被他所伤......自从有了刘关张,事情就好多了,也就是这个原因.....大家见到刘关张就想起了吕布同学,而见到了吕布就想到哪哥三..... 上面只废话只是告诉大家.....复制构造函数、赋值操作符、析构函数-----刘关张... 阅读全文

C/C++内存对齐

2012-04-13 13:07 by javaspring, 245 阅读, 收藏,
摘要: 一、什么是字节对齐,为什么要对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。比如有些架构的CPU在访问 一个没有进行对齐的变量的时候会发生错误,那么在这种架构下编程必须保证字节对齐.其他平台可能没有这种情况,但是最常见的是如果不按照适合其平台要求对 数据存放进行对齐 阅读全文

关于内存对齐

2012-04-13 13:00 by javaspring, 530 阅读, 收藏,
摘要: 曾经接手一个网络视频监控程序,主要是上层软件通过发送控制指令获取网络视频板的视频数据和控制网络视频板,这应该是一个比较简单的流程!一切的开发都很顺利,测试的时候,问题就来了,获取视频数据流的数据竟然是错误的,我糊涂了,把整个程序流程,用调试器一步一步地跑,到了发送视频指令的时候,返回指令操作错误的结果,怎么回事?我是按照视频的操作指令封装的数据包,内存显示数据包的内容是没有错误的,就是一个晚上,我不停地找"错误",只有偶然,我把sizeof()这个指令直接换掉,把数据包全部用一个BYTE的数据进行copy,程序成功执行!这时,我已经快晕了!数据发送到网络板的数据包大小根本不 阅读全文

MyGrowStack

2012-03-12 22:26 by javaspring, 238 阅读, 收藏,
摘要: //MyGrowStack.h#if !defined (STACK_H) #define STACK_H const int InitStack=1; const int ShrinkNum=8; const int Maxbufsize=20; const int TokError=0; const int TokNum=1; class IStack { friend class StackSeq; public: IStack(); ~IStack(); int Pop(); void Push(int n); int Top() const; bool I... 阅读全文

c++中的typename与class

2012-03-12 21:43 by javaspring, 422 阅读, 收藏,
摘要: 在泛型编程的形参表中,关键字typename和class具有相同的含义,可以相互使用,两个关键字都可以在同一模板形参表中使用: 1. typename用在模板定义里,标明其后的模板参数是类型参数。template<typename T,class U> calc (const T&, const U& ); // 定义一个返回参数中较大者的通用函数 template <typename T> const T& max(const T& x, const T& y) { if (y < x) { return x; } ret 阅读全文

一周热文推荐:C++的精英化趋势与两个关键缺陷

2011-12-25 19:51 by javaspring, 268 阅读, 收藏,
摘要: CSDN博客一周热文推荐,为您总结回顾过去一周的CSDN博客热门文章,推荐优质的博客作者,分享精华文章和优质博客。[1] 理想流:C++的精英化趋势与两个关键缺陷C++是一门引起无数争议的语言。眼下最常听到的声音则是C++将趋于没落,会被某某语言取代。我很怀疑这种论调的起点是商业宣传,C++的真实趋势应该是越来越倾向于精英化。精英化是指在可用可不用C++的领域中,C++将逐渐退出,而所有剩下必须用C++的领域通常都是附加值比较高,难度较高的领域,比如:操作系统,数据库,大型网站后端等。这一过程造成的现象就是在TIOBE上,C++的份额逐步下降。这导致的结果就是修炼C++的程序员必须往高端走,你 阅读全文

[C++]explicit解释

2011-12-16 23:17 by javaspring, 219 阅读, 收藏,
摘要: C++提供了关键字explicit,可以阻止不应该允许的经过转换构造函数进行的隐式转换的发生。声明为explicit的构造函数不能在隐式转换中使用。 C++中, 一个参数的构造函数, 承担了两个角色。 1 是个构造器 2 是个默认且隐含的类型转换操作符。 所以, 有时候在我们写下如 AAA = XXX, 这样的代码, 且恰好XXX的类型正好是AAA单参数构造器的参数类型, 这时候编译器就自动调用这个构造器, 创建一个AAA的对象。 这样看起来好象很酷, 很方便。 但在某些情况下(见下面权威的例子), 却违背了我们(程序员)的本意。 真是成也萧何, 败也萧何。 这时候就要在这个构造器前面... 阅读全文

重载new和delete后调用构造函数和析构函数顺序

2011-12-16 21:34 by javaspring, 578 阅读, 收藏,
摘要: 环境:VS2010问题;探索重载new和delete后构造函数、修改函数的调用顺序代码:#include <iostream> using namespace std; class C { float x,y; public: C(){ cout<<"调用构造函数"<<endl; } ~C(){ cout<<"调用析构函数"<<endl; } void show() { cout<<"x="<<x<<'\t'<< 阅读全文

c++指针比较的含义

2011-12-16 21:07 by javaspring, 297 阅读, 收藏,
摘要: 在c++中,一个对象可以有多个有效地地址,因此,指针比较并不是关于地址问题,而是关于类的判别 (object identity)。 class Shape {.......}; class Subject {.........}; class ObservedBlob :public shape , public Subject {.........}; 在这个类的继承层次结构中,ObservedBlob 只是由shape和Subject派生而来,并且都是公有继承,因此存在从派生类对象到任何基类的预定义转换。 ObservedBlob *obj=newObservedBlob; Shape.. 阅读全文