
学习总结
wche1990
这个作者很懒,什么都没留下…
展开
-
java环境配置
1.安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为D:\java\jdk1.5.0_08;2.安装完成后,右击“我的电脑”,点击“属性”;3.选择“高级”选项卡,点击“环境变量”;4.在“系统变量”中,设置3项属性,JAVA_HOME,PATH,CLASSPATH(大小写无所谓),若已存在则点击“编辑”,不存在则点击“新建”;5.JAVA_H转载 2013-08-12 23:52:28 · 807 阅读 · 0 评论 -
野指针
野指针,也就是指向不可用内存区域的指针。通常对这种指针进行操作的话,将会使程序发生不可预知的错误。 “野指针”不是NULL指针,是指向“垃圾”内存的指针。人们一般不会错用NULL指针,因为用if语句很容易判断。但是“野指针”是很危险的,if语句对它不起作用。野指针的成因主要有两种: 一、指针变量没有被初始化。任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一转载 2012-10-10 11:21:36 · 630 阅读 · 0 评论 -
构造函数中抛出的异常
转载自:http://se.csai.cn/ExpertEyes/200801031103481314.htm构造函数中抛出的异常 构造函数中抛出异常时概括性总结 (1) C++中通知对象构造失败的唯一方法那就是在构造函数中抛出异常; (2) 构造函数中抛出异常将导致对象的析构函数不被执行; (3) 当对象发生部分构造时,已经构造完毕的子对象将会逆转载 2012-10-10 11:07:44 · 916 阅读 · 0 评论 -
获取系统当前时间的方法
刚刚在写程序,想获取当前的系统时间保存在数据库中,一时忘了,查了下。SYSTEMTIME time; GetSystemTime(&time);//得到格林威治标准时间 GetLocalTime(&time); //得到当地的时间(我们为东八区的北京时间:P) 补充:SYSTEMTIME结构typedef struct _SYSTEMTIME {原创 2012-09-12 02:59:29 · 904 阅读 · 0 评论 -
临界区使用方法实例
VC/MFC 临界区使用方法实例转载▼转载自新浪博客 临界区的作用:避免临界区内的数据(一般为共享的资源)被不同的线程同时访问,实现线程的同步操作。保证只能由先进入临界区的一个线程访问结束后,其他线程才可以继续访问共享的资源。以下为临界区的使用方法:*.h头文件:#include CRITICAL_SECTION m_cs转载 2012-07-17 23:43:09 · 9534 阅读 · 0 评论 -
多进程/多线程的同步
同步对象及常用API1、 事件事件(Event)是一个同步对象,它有两种状态:有信号状态和无信号状态。线程只有在事件有信号的时候才能获取事件,并设置事件为无信号状态,使得其他线程不能访问事件所保护的数据或代码段。线程使用完后应该将事件设置为有信号状态,以使其他线程能够使用。API:SetEvent:设置事件状态为有信号状态。CreateEvent:创建一个事件对象。Rese原创 2012-07-17 23:22:54 · 1913 阅读 · 0 评论 -
添加系统函数,编译linux内核
这是一个操作系统试验:用户接口试验。试验要求是先添加系统自己编写的系统调用函数,然后重新编译内核。这个试验做了N久,上网看了很多关于内核编译的资料,试编译了很多次都不能成功。最后请教了同学,在其帮助下完成了试验。在此把试验过程截图贴出来,当做一个记录。1、 查看当前内核版本2、下载内核版本linux-3.1.6.tar.bz2,并将内核复制到/usr/src原创 2012-01-03 22:54:07 · 2057 阅读 · 2 评论 -
安装和卸载.deb包
安装/升级deb包命令: sudo dpkg -i package.deb卸载deb包: sudo dpkg -r(-p) packagename选项参数说明:-i在系统中安装/升级软件-r在系统中卸载软件,不删除配置文件-p在系统中卸载软件以及其配置文件-l在系统中查询软件内容信息--info在系统中查询软件原创 2012-01-03 22:28:29 · 10221 阅读 · 0 评论 -
C语言指针的实验说明
上午上《编译原理》的时候听老师谈到了C语言的指针的问题,有些疑问,所以回到宿舍进行了实验验证。当函数参数是个指针的时候,当调用这个函数时,此函数的形参的得到的是指针本身,还是他的一个副本?如下代码:#include "stdio.h"void change1(int* d){ printf("address_d = %d d = %d *d = %d\n", &d,原创 2011-12-16 13:39:59 · 1486 阅读 · 0 评论 -
析构函数中抛出的异常
来源:http://se.csai.cn/ExpertEyes/No144.htm析构函数中抛出的异常作者:王胜祥 来源:希赛网 http://www.csai.cn 2005年5月16日 前两篇文章讨论了对象在构造过程中(构造函数)和运行过程中(成员函数)出现异常时的处理情况,本文将讨论最后一种情况,当异常发生在对象的析构销毁过程中时,又会有转载 2012-10-10 10:43:09 · 880 阅读 · 0 评论 -
TCP三次握手/四次挥手详解
转载自:http://wanlong.blog.51cto.com/287340/114592写的很好,收录起来。TCP三次握手/四次挥手详解1、建立连接协议(三次握手)(1)客户端发送一个带SYN标志的TCP报文到服务器。这是三次握手过程中的报文1。(2) 服务器端回应客户端的,这是三次握手中的第2个报文,这个报文同时带ACK标志和SYN标转载 2012-10-09 21:44:48 · 540 阅读 · 0 评论 -
cout是什么
昨天YY的笔试中有一道选择题,问的是cout是函数、操作符还是对象?cout是C++中的标准输出流对象。在iostream中定义如下:extern ostream cout;理所当然,cin也是一个对象。原创 2012-10-10 09:15:16 · 2604 阅读 · 0 评论 -
gsoap入门--用goap写一个加法的WebService
毕业设计要用到WebService,但是本人不会java,就想着用c/c++来写WebService。网上查找了相关资料,就知道了gsoap。 从gsoap的官方网站http://www.cs.fsu.edu/~engelen/soap.html中下载了最新版本,里面会有相关技术文档。 本人觉得学习一个新的东西最快捷的方式就是马上动手实践了,这样可以大大的加深的理解原理和使用方原创 2012-12-19 16:25:06 · 4182 阅读 · 1 评论 -
使用gedit出现No protocol specified (gedit:14333): Gtk-WARNING **: cannot open display: :0.0
切换到root权限,在终端下使用gedit时出现下面的错误:No protocol specified(gedit:14333): Gtk-WARNING **: cannot open display: :0.0下面是从网上找到的正解,贴——分析——总结之:原因:当使用su 到另外一个用户运行某个程序,而这个程序又要有图形显示的时候,就有可能有下面提示:No protoc转载 2012-11-06 15:40:06 · 25931 阅读 · 0 评论 -
隐式类型转换导致重载函数产生二义性
//隐式类型转换导致重载函数产生二义性//当用数字作为参数时,又于数字本身没有类型的,此时将发什么隐式类型转换,这就造成了混乱。//如下代码说明问题:#include using namespace std; bool output(int x){cout return true; } bool output(float x){cou原创 2012-10-17 16:52:49 · 1014 阅读 · 0 评论 -
auto、static、register、const、volatile 、extern 总结
auto 这个这个关键字用于声明变量的生存期为自动,即将不在任何类、结构、枚举、联合和函数中定义的变量视为全局变量,而在函数中定义的变量视为局部变量。这个关键字不怎么多写,因为所有的变量默认就是auto的。register 这个关键字命令编译器尽可能的将变量存在CPU内部寄存器中而不是通过内存寻址访问以提高效率。static 常见的两种用途: 1>统计函数转载 2012-09-22 23:31:29 · 781 阅读 · 0 评论 -
有关宏的一些知识——TCL笔试题
刚参加完了TCL的笔试,有两份试卷,一份专业的,一份素质测试。素质测试的都是逻辑题、计算题,30分钟30道题,最后还有篇英语阅读。逻辑题好难,很多事总结规律的。专业题考的都是C的知识。难度还好,但是很多还是不能确定的。像有一道宏的题目就是没注意,弄错了。在此再总结说明一些。直接上代码:/*注意宏的展开方式*/ #include using namespace std;原创 2012-09-22 13:23:23 · 2549 阅读 · 1 评论 -
预编译
预编译也称预处理,指在编译器在编译前所做的准备工作。预处理有三种:1、宏;2、文件包含;3、条件编译。原创 2012-09-21 09:21:45 · 515 阅读 · 0 评论 -
C++多态性
多态性可以简单地概括为“一个接口,多种方法”。最常见的用法就是声明基类的指针,利用该指针指向任意一个子类对象,调用相应的虚函数,可以根据指向的子类的不同而实现不同的方法。如果没有使用虚函数的话,即没有利用C++多态性,则利用基类指针调用相应的函数的时候,将总被限制在基类函数本身,而无法调用到子类中被重写过的函数。多态与非多态的实质区别就是函数地址是早绑定还是晚绑定。如果函数的调用,在编译器原创 2012-09-21 20:43:12 · 656 阅读 · 0 评论 -
使用perfmon监控系统性能
《编程之美》里边有个讲控制CPU占用率曲线的例题,里面讲到使用perfmon工具来帮助我们实现控制CPU占用率曲线的功能。perfmon工具可以监控系统的各个系能参数,在.NET Framework中也提供了操作perfmon的相应类。我们只要根据需要取得实例句柄进行操作就行。(注意,因为perfmon是一个程序实例,我们不能直接用new来实例化一个对象。)关于perfmon的知识,在MS原创 2011-11-09 18:23:42 · 4675 阅读 · 0 评论 -
(博客搬迁啦~)Max Sum Plus Plus(http://acm.hdu.edu.cn/showproblem.php?pid=1024)
我觉得这是一道很好的dp题。题意:n个元素分成不相交的m段,求这m段和的最大和分析:cur(i,j) = max(cur(i,j-1)+a[j], max(cur(i-1,t))+a[j]) (1 cur(i,j)表示前j个元素中 i 段和的最大和 , 他等于前 j-1 个元素中 i 端和的最大和 与 前i-1段中的最大和 这两者中的最大值加上第j 个元素, 前者即为cur(i,原创 2011-11-07 19:25:00 · 1820 阅读 · 0 评论 -
pku1276 Cash Machine(http://poj.org/problem?id=1276)
分析:这是一个多重背包问题,记得上次做过,好像是hdu上的,可是没写报告,所以这次在pku上看到了就重做了一次。多重背包的思想不是很清楚了,重做一次也算是温习吧。这题采用二进制进行优化,其中的思想就不多说了。code:#include#includeint max(int a, int b){ return a > b ? a : b;}int main(){原创 2011-11-07 19:15:37 · 539 阅读 · 0 评论 -
博弈论的一些基础知识(参考网络资料,学习总结,很好,分享并保存)
(一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个.最后取光者得胜.显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜.因此我们发现了如何取胜的法则:如果n=(m+1)r+s,(r为任意自然数,s≤m),那么先取者要拿走s个物品,如果后取者拿走k(原创 2011-11-07 19:10:28 · 1398 阅读 · 0 评论 -
在编辑框中动态显示当前时间,实现时钟功能
1、首先响应WM_TIMER事件,利用MFC ClassWizard添加WM_TIMER事件。2、然后在OnTimer()函数中添加处理代码,如下:void CMyDlg::OnTimer(UINT nIDEvent) { nIDEvent = 1; //指定定时器 CTime t = CTime::GetCurrentTime(); //获得当原创 2011-11-07 19:07:13 · 1923 阅读 · 1 评论 -
文档视图框架简介
文档是程序的数据结构,CDocument的派生类对象。它负责程序数据的组织和维护,提供给程序的视图显示的数据。视图是程序的面,CView的派生类对象。它负责程序的面向客户的数据显示,并接受客户的请求,操作文档中的数据。每个View都有与之唯一关联的Document。在CView的派生类中的OnDraw函数中,通过GetDocument()返回与之关联的Document指针:pDoc。视图正原创 2011-11-07 18:58:50 · 863 阅读 · 0 评论 -
框架窗口和文档、视图的交互(MFC)
框架窗口与文档的交互:a、框架窗口 -> 文档 的过程:1、通过视图。视图都由与之关联的文档,而框架窗口是视图的容器,理所当然,框架窗口和文档的交互可以以视图为桥梁。在框架窗口中可以通过GetActiveView()可以得到活动视图的指针pView,接着pView->GetDocument()便可以得到与之关联的文档指针pDoc。利用这个指针框架窗口便可以对文档进行相关的操作原创 2011-11-07 18:52:00 · 1640 阅读 · 0 评论 -
MFC中框架文档视图结构的命令路由处理
命令处理的默认路由是:视图 -> 文档 -> 文档模板 -> 框架窗口 -> 应用对象。补充说明:菜单、工具栏等隶属于框架窗口,所以命令首先到达框架窗口。框架窗口得到命令消息后,按照上述的过程处理命令。要想改变默认的命令处理过程,定制自己的处理过程,则需要重载上述命令路由链中的某个对象的OnCmdMsg()函数。例如:下面的代码重载框架窗口的OnCmdMsg()函数,使得活动文档直原创 2011-11-07 18:42:42 · 688 阅读 · 0 评论 -
求大数高次幂的模
题目:/*球大数高次幂的模X^Y mod Z思路:x^y mod z = (x % z)*(x % z)*、、、*(x % z)*/#include bool Getmi(int X, int Y, int Z, int &res){ int numl(1); int numy(Y); int multi(X); int tmp(0); int原创 2011-11-22 18:14:31 · 2288 阅读 · 1 评论 -
设计Huffman编码(算法设计与分析课程实验)
直接贴Code:#include #include #include //节点数据结构typedef struct{unsigned int weight;unsigned int parent, lchild, rchild;}HTNode, *HuffmanTree;typedef char **HuffmanCode;void select原创 2011-11-22 18:06:42 · 2014 阅读 · 0 评论 -
(博客搬迁)pku2231 Moo Volume(数学题http://poj.org/problem?id=2231)
分析:求所有牛的通信路程的总和。查看数据,如果用二重循环会超时,而且数据比较大,所以要用__int64型。因为这是一维的,所以可以先排序,然后可以推出一个数学关系式。每增加一头牛,路程总和会增加(pos[i] - pos[i-1])*2 + (pos[i] - pos[i-2])*2 + ...+(pos[i] - pos[1])*2 = {(pos[i] * (i-1) - (pos[1] +原创 2011-11-07 19:20:00 · 1413 阅读 · 0 评论 -
(博客搬迁啦)pku1276多重背包问题(http://poj.org/problem?id=1276)
刚看到这题的时候,想都没多想,就开始暴力,结果runtime error,我想那应该是数组越界了。因为我暴力的解法的空间复杂度是nk[1]*nk[2]*、、、不用多想也知道是越界了,可是我好久后才发现,真水~这是个多重背包问题,第二次我把它转化为01背包问题,结果TLE. 因为我把它转化为N*nk[i]张钞票,cash的最大值为100000,这种做法显然会超时。不过我的体会也挺深的,就是01背原创 2011-11-07 19:23:31 · 1572 阅读 · 0 评论 -
(博客搬迁啦)寻找多元素算法hdu1029(2010年10月17日)
寻找多元素算法hdu1029多元素即在数列中出现次数多于n/2的元素我们很容易的看出来,在一个序列中如果去掉2个不同的元素,那么原序列中的多元素,在新的序列中还是多元素, 因此我们只要按照序列依次扫描,先把A[0]赋值给c,增加个计数器,count = 1;然后向右扫描,如果跟c相同,则count++,不同,那么count --,这个真是我们从上面那个结论里得出的,一旦count原创 2011-11-07 19:26:14 · 1494 阅读 · 0 评论 -
(博客搬迁)二维多重背包转化为01背包
题意:有n种物品,每件物品的价值为pr[i],体积为v[i],重量为w[i],数量为c[i]。现有一个体积为V,最大可承受重量为W的背包。问:怎么样选择物品,使得背包中的物品价值最大?分析:这题其实与上一题差不多,思路是一样的,只是多了一维,相应的记录数组也多一维就搞定。仍然是以二进制的思想来进行优化。不过因为数组变成了二维,所以数组不能开得太大。其实,不管多重背包变成多少维,解题的思路是一样原创 2011-11-07 19:22:19 · 1226 阅读 · 0 评论 -
(博客搬迁)hdu1069 Monkey and Banana(最长不下降子序列)
思想:如序列{4,6,5,7,3},则其最长不下降子序列为{4,6,7};算法实现:时间复杂度(n^2) int Lc(int num[], int n) { int i,j, max = 0; int list[n]; for(i = 0; i { list[i] = 1;原创 2011-11-07 19:21:14 · 1174 阅读 · 0 评论 -
pku1882 Stamps(http://poj.org/problem?id=1882)(博客搬迁)
分析1 :百度和goole了,都说是完全背包,可是我怎么想都不像,只是循环的形式相似,其本质我认为不是完全背包问题。我以为这更像是枚举。code:#include#includeint main(){ int s, t; int n; int i, j, k; int a[11], sum[10003]; int max, b[11]; while(sc原创 2011-11-07 19:17:51 · 1440 阅读 · 0 评论 -
hdu1421搬寝室DP(ACM题目,动态规划)
分析:dp[i][j]表示前i个元素中 j 对数的最小差平方和 dp[i][j] = min(dp[i-1][j], dp[i-2][j-1] + (weight[i] - weight[i-1])*(weight[i] - weight[i-1]));code:#include#include#define min(a,b) ((a) > (b) ? (b) : (原创 2011-11-07 19:14:01 · 1356 阅读 · 0 评论 -
hdu1527(博弈问题)
分析:威佐夫博弈(Wythoff Game)问题(摘自网络)前几个必败点如下:(0,0),(1,2),(3,5),(4,7),(6,10),(8,13)……可以发现,对于第k个必败点(m(k),n(k))来说,m(k)是前面没有出现过的最小自然数,n(k)=m(k)+k。一个必败点有如下性质:1.所有自然数都会且仅会出现在一个必败点中;证明:m(k)是前面没有出现过的最小自然数,自然与原创 2011-11-07 19:12:15 · 969 阅读 · 0 评论 -
出现fatal error LNK1120: 1 unresolved externals的原因
在调用动态库时,出现 fatal error LNK1120: 1 unresolved externals的编译错误。原因有很多个,分两类。第一类是本工程的编译环境设置问题,另一类是库文件出问题。 第一类中,可能是在设置时没有设置对。参考网上的资料:在调用dll库的时候发现错误fatal error LNK1136: invalid or corrupt file原创 2011-11-07 19:04:49 · 143765 阅读 · 1 评论 -
三种DLL(Win32DLL,MFC常规DLL和MFC拓展DLL)的简单学习总结
学习了三种动态链接库的基本知识,分别是Win32DLL,MFC常规DLL和MFC拓展DLL。 Win32DLL使用的是Win32的API实现的,只能导出函数,能被各种应用程序调用,适用范围最广。 MFC常规DLL是适用MFC创建的,就像MFC程序跟Win32程序的关系一样,MFC常规DLL和Win32DLL的关系也是如此。它使用MFC的机制,只能导出标准C函数。如此,它便可以被原创 2011-11-07 19:02:23 · 4622 阅读 · 1 评论 -
定制字体(以静态文本框的字体为例)
1、首先获得文本框窗口的指针:CWnd *pWnd = GetDlgItem(ID_Static_MY);2、获得DC资源:CDC *pDC = pWnd->GetDC();3、创建字体:CFont font;font.CreateFont(50, 0,0,0, FW_HEAVY, // 字体的粗度,此为最粗0,0,0,ANSI_CHARSET,原创 2011-11-07 18:54:32 · 805 阅读 · 0 评论