摘要:
type()语句的用法 运行结果 阅读全文
摘要:
迭代加深 迭代加深是用于优化搜索的,因为dfs的过程中是选择搜索的一个分支,不断地深入,直到我们达到递归的边界时才会返回。这样的话,如果搜索树的分支比较多,但答案在比较浅的分支节点时,一旦我们选择了错误的搜索分支,我们就会在错误的分支上搜索到很深的深度从而浪费搜索的时间。而迭代加深就是为了解决这一问 阅读全文
摘要:
概念 继承:在定义一个新类B时,如果该类与某个已有的类A相似(指的是B拥有A的全部特点)那么就可以把A作为一个基类,而把B类作为基类的一个派生类(子类) 派生类是通过对基类进行修改和扩充得到的。在派生类中,可以扩充新的成员变量和成员函数 派生类一经定义后,可以独立使用,不依赖于基类 派生类拥有基类的 阅读全文
摘要:
运算符重载,就是对已有的运算符赋予多重的含义,使同一运算符作用于不同类型的数据时导致不同类型的行为,作用就是扩展c++中已有运算符的范围,使之可以作用于对象,同一运算符对不同操作数,所发生的行为是不同的 运算符的重载的实质是函数重载 可以重载为普通函数,也可以重载为成员函数 把含运算符的表达式转换成 阅读全文
摘要:
this指针 作用:指向成员函数所作用的对象 #include <iostream> #include <algorithm> #include <cstring> using namespace std; class Complex { public: double real, imag; voi 阅读全文
摘要:
成员函数和类的定义分开写 class Crectangle { public: int w, h; int Area(); int Perimeter(); void Init(int w_, int h_); } int CRectangle::Area() { return W * h; } i 阅读全文
摘要:
内联函数 我们知道函数调用是有时间开销的,当函数本身只有几条语句,而函数本身却被反复执行很多次时,函数调用的开销就会显得比较大,为了减小这种函数调用的开销,就引入了内联函数,编译器对内联函数的处理不像普通函数那样把调用堆栈,而是直接把函数代码嵌入到调用函数的语句的地方。 //在函数定义前面加“inl 阅读全文
摘要:
1、用来定义常量 2、定义常量指针 不可通过常量指针修改其指向的内容 int n, m; const int *p = & n; //编译出错,通过常量指针p修改了n的值是不允许的 * p = 5; n = 4; //常量指针的指向可以改变 p = &m; 不能把常量指针赋值给非常量指针,反过来却是 阅读全文
摘要:
剪枝 剪枝是搜索中很重要的一个环节, 尽早排除搜索树中不必要的分支。 优化搜索顺序 优先搜索分支数量较小的节点 排除等效冗余 比如从n个物品选m个物品,选1,2和选2,1是一样的,这样我们只需要遍历其中一个即可,如果不考虑顺序的话尽量按组合的顺序搜索 可行性剪枝 当我们搜索状态在进行中发现不合法了就 阅读全文
摘要:
希望以后遇到的老师都正常一点好吧。数据结构实验报告写完了,才说有各种格式什么的,这种事不应该是第一节课就说的吗?而且说完刚改了三章,又发了个新模版说让用新模版,我真的哭死,我刚改了三章啊。真的破防了! 阅读全文