摘要:回溯法(探索与回溯法)是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。有许多问题,当需要找出它的解集或者要求回答什么解是满足某些约束条件的最佳解时,往往要使用回溯法。回溯法的基本做法是搜索,或是一种组织得井井有条的、能避免不必要搜索的穷举式搜索法。这种方法适用于解一些组合数相当大的问题。回溯法在问题的解空间树中,按深度优先策略,从根结点出发搜索解空间树。算法搜索至解空间树的任意一点时,先判断该结点是否包含问题的解:如果肯定不包含,则跳过对该. 阅读全文
c++ find_first_of
2012-05-20 15:33 by youxin, 975 阅读, 0 推荐, 收藏,
摘要:find_first_of 函数原型如下: ForwardIterator1 find_first_of ( ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2, ForwardIterator2 last2 ); 它从第一个范围里面寻找任何一个是第二个范围里的一个元素,返回第一次匹配的迭代器。如果找不到,返回第一个范围的最后一个迭代器。从两个list中输出匹配的次数:#include<iostream>#include<lis... 阅读全文
masmplus增加调试工具
2012-05-20 14:46 by youxin, 699 阅读, 0 推荐, 收藏,
摘要:菜单---配置---系统配置---工具:在工具属性里填写工具路径 C:\windows\system32\debug.exe再自己指定图标和标题,运行参数,$(FileDir)\$(FileName).exe然后工具栏就有了debug,编译好exe之后直接debug... 阅读全文
汇编链接时 错误:unresolved external symbol _WinMainCRTStartup
2012-05-20 14:43 by youxin, 2235 阅读, 0 推荐, 收藏,
摘要:在masmPlus下,写好asm文件后,编译没问题,链接时报错:“LINK : error LNK2001: unresolved external symbol _WinMainCRTStartup 2.exe : fatal error LNK1120: 1 unresolved externals” 解决办法:“配置”标签那里选择“系统配置”,再在编译/脚本那里勾上单独文件默认使用DOS模式(第二链接器)就可以了。 问题的原因是:把编译Windows程序的选项打开了,这是一个DOS程序,当然不会有“_WinMainCRTStartup”这种东西,这是Windows程序才用,就在外部引用. 阅读全文
java 解析 xml 文档
2012-05-18 13:33 by youxin, 356 阅读, 0 推荐, 收藏,
摘要:为读取和分析xml文档的内容,需要一个xml解析器。解析器是读取文档,检查其语法是否正确并在它除了文档时完成某些工作的程序。有两种xml解析器是经常使用的。一种遵循称为SAX (xml简单api)规范,另一种遵循称为dom 规范。sax解析器是事件驱动的。只要解析器遇到某种结构(例如,开始标签<price> ),它就会调用必须提供的一个方法。相反,dom解析器则构建表示被解析文档的树。一旦解析器建树完毕,就可以分析此树。对需要大量内存来处理树结构的大型xml来说,sax解析器的效率更高。但是,对大多数应用程序来说,dom解析器更容易使用--解析树给出了数据的完成概况,而sax解析器 阅读全文
转:C++中定义类的对象:用new和不用new有何区别?
2012-05-17 20:18 by youxin, 470 阅读, 0 推荐, 收藏,
摘要:举个简单的例子:class Point { private: int x; int y; public: void Set(int a,int b) { x=a; y=b; } void Print() { cout<<"("<<x<<","<<y<<")"<<endl; }}; void main(){ Point p1; Point *p2=new Point(); p1.Set(1,2); p2->Set(4,5); p1.Print(); p2-&g 阅读全文
C++ static 关键字详解
2012-05-17 19:50 by youxin, 2225 阅读, 1 推荐, 收藏,
摘要:全局变量和局部变量在内存里的区别?一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结... 阅读全文
c++ const 成员函数和mutable
2012-05-16 14:13 by youxin, 1451 阅读, 0 推荐, 收藏,
摘要:常量(const)成员函数:承诺不会修改对象的状态double Student_info::grade() const {...} // 成员函数版double grade(const Student_info&) {...} // 旧版 对常量对象只能调用常量成员函数,而不能调用非常量成员函数。... 阅读全文
c++动态创建和销毁二维数组
2012-05-15 23:53 by youxin, 1446 阅读, 0 推荐, 收藏,
摘要:如果二维数组中的高维确定,则可以TYPE (*p)[N] = new TYPE [][N]; 用这种方法。最常用的方法: 使用数组指针,分配一个指针数组,将其首地址保存在b中,然后再为指针数组的每个元素分配一个数组 int **b=new int*[row];//分配一个指针数组,将其首地址保存在b中 for(i=0;iusing namespace std;void func(int m,int n){ int x; int **p=new int*[m]; for(int i=0;i>x; p[i][j]=rand();... 阅读全文
c++ new和delete
2012-05-15 23:29 by youxin, 326 阅读, 0 推荐, 收藏,
摘要:new和delete运算符用于动态分配和撤销内存的运算符new用法:1.开辟单变量地址空间1)new int; //开辟一个存放数组的存储空间,返回一个指向该存储空间的地址.int *a = new int 即为将一个int类型的地址赋值给整型指针a.2)int *a = new int(5) 作用同上,但是同时将整数赋值为52.开辟数组空间一维: int *a = new int[100];开辟一个大小为100的整型数组空间二维: int **a = new int[5][6]三维及其以上:依此类推.一般用法:new 类型 [初值]delete用法:1. int *a = new int;d 阅读全文
浙公网安备 33010602011771号