迪米特法则(最少知识原则):如果两个类不必彼此直接通信,那么两个类就不应该发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。
(1),在类的结构设计上,每一个类都应当尽量降低成员的访问权限。
(2),迪米特法则的根本思想是强调了类的松耦合。
(3),类之间的耦合越弱,越有利于复用,一个处于弱耦合的类被修改,不会对有关系的类造成影响。
...
分类:
编程语言 时间:
2014-07-26 02:09:56
阅读次数:
293
题目描述:输入N个学生的信息,然后进行查询。输入:输入的第一行为N,即学生的个数(Nusing namespace std; //# include# include# include/*int main(){ int n; while (cin >> n) { } ...
分类:
其他好文 时间:
2014-07-26 01:49:16
阅读次数:
223
转载自here1.关于setmap容器是键-值对的集合,好比以人名为键的地址和电话号码。相反地,set容器只是单纯的键的集合。例如,某公司可能定义了一个名为bad_checks的set容器,用于记录曾经给本公司发空头支票的客户。当想知道一个值是否存在时,使用set容器是最适合的。除了两种例外情况,s...
分类:
其他好文 时间:
2014-07-26 01:22:06
阅读次数:
359
介绍这篇文章的目的是为了介绍std::vector,怎样恰当地使用它们的成员函数等操作。本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用。通过阅读这篇文章读者应该可以有效地使用vector容器,并且应该不会再去使用C类型的动态数组了。Vect...
分类:
其他好文 时间:
2014-07-26 00:35:46
阅读次数:
333
使用Trie树完成。比STL map 快很多。输出时DFS,用一个字符数组记录当前字符串。走到是字符串的结点就输出。代码如下。#include #include #include #include #include #include using namespace std;const int Max...
分类:
其他好文 时间:
2014-07-25 10:52:21
阅读次数:
236
allocator封装了stl标准程序库的内存管理系统,标准库的string,容器,算法和部分iostream都是通过allocator分配和释放内存的。标准库的组件有一个参数指定使用的allocator类,比如vector的原型是:template >class vector : protecte...
分类:
其他好文 时间:
2014-07-25 02:31:04
阅读次数:
201
字符串是各类语言中一种非常重要的数据结构,事实上大部分的代码都是基于字符串的操作,各个语言对字符串的处理方式,也是我们评价各个语言的一个重要方面。因为C++库中并没有提供字符串这个数据类型,所以我们以STL中提供的string来进行对比。这里不选择char*进行对比,是因为..
分类:
其他好文 时间:
2014-07-24 23:55:04
阅读次数:
309
模板方法模式:
定义:定义一个操作中的算法的骨架,而将一些步骤延伸到子类中。模板方法使得子类可以不改变算法的结构即可重定义该算法的某些特定步骤。
(1),用了继承,并且肯定这个继承有意义的情况下,就应该要成为子类的模板,所以重复的代码都应该提升到父类中,而不是让每个子类去重复。
(2),当我们要完成某一个细节层次一致的过程或者一系列步骤,但其个别步骤在更详细的层次上的实现可能不同时,我们通常...
分类:
编程语言 时间:
2014-07-24 23:04:33
阅读次数:
194
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4864解题报告:有n台机器用来完成m个任务,每个任务有一个难度值和一个需要完成的时间,每台机器有一个可以工作的最长时间和一个可以完成的任务的难度的最大值,一台机器能完成一个任务的条件是这台机器的最长工作时...
分类:
其他好文 时间:
2014-07-24 21:49:22
阅读次数:
209
水题,1A过的数据才100,o(n^3)都能过,感觉用优先队列来做挺麻烦的,直接暴力就可以了,模拟的队列,没用stl#include #include #include #include #include #define maxn 100+5using namespace std;int mid[m...
分类:
其他好文 时间:
2014-07-24 21:36:02
阅读次数:
150