`
BlogDown
  • 浏览: 213739 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论
文章列表
对象(Object)是类(Class)的一个实例(Instance)。如果将对象比作房子,那么类就是房子的设计图纸。所以面向对象设计的重点是类的设计,而不是对象的设计。 对于C++程序而言,设计孤立的类是比较容易的,难的是正确设计基类及其派生类。本章仅仅论述“继承”(Inheritance)和“组合”(Composition)的概念。 注意,当前面向对象技术的应用热点是COM和CORBA,这些内容超出了C++教材的范畴,请阅读COM
11.1使用const提高函数的健壮性 看到const关键字,C++程序员首先想到的可能是const常量。这可不是良好的条件反射。如果只知道用const定义常量,那么相当于把火药仅用于制作鞭炮。const更大的魅力是它可以修饰函数的参数、返回值,甚至函数的定义体。 const是constant的缩写,“恒定不变”的意思。被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。所以很多C++程序设计书籍建议:“
遗传算法入门 遗传算法 遗传算法(Genetic Algorithm, GA)是近几年发展起来的一种崭新的全局优化算法。1962年霍兰德(Holland)教授首次提出了GA算法的思想,它借用了仿真生物遗传学和自然选择机理,通过自然选择、遗传、变 ...
1、 堆排序定义n个关键字序列Kl,K2,…,Kn称为堆,当且仅当该序列满足如下性质(简称为堆性质):(1) ki≤K2i且ki≤K2i+1 或(2)Ki≥K2i且ki≥K2i+1(1≤i≤ )若将此序列所存储的向量R[1..n]看做是一棵完全二叉树的存储结构,则堆实质上是满足如下性质的完全二叉树:树中任一非叶结点的关键字均不大于(或不小于)其左右孩子(若存在)结点的关键字。【例】关键字序列(10,15,56,25,30,70)和(70,56,30,25,15,10)分别满足堆性质(1)和(2),故它们均是堆,其对应的完全二叉树分别如小根堆示例和大根堆示例所示。2、大根堆和小根堆
算法的实现 一、初始化 由用户输入数据,分别对可利用资源向量矩阵AVAILABLE、最大需求矩阵MAX、分配矩阵ALLOCATION、需求矩阵NEED赋值。 二、银行家算法 在避免死锁的方法中,所施加的限制条件较弱,有可能获得令人满意的系统性能。在该方法中把系统的状态分为安全状态和不安全状态,只要能使系统始终都处于安全状态,便可以避免发生死锁。 银行家算法的基本思想是分配资源之前,判断系统是否是安全的;若是,才分配。它是最具有代表性的避免死锁的算法。 设进程cusneed提出请求REQUEST [i],则银行家算法按如下规则进行判断。 (1)如果 ...
多重背包O(N*V)算法详解(使用单调队列) 多重背包问题: 有N种物品和容量为V的背包,若第i种物品,容量为v[i],价值为w[i],共有n[i]件。怎样装才能使背包内的物品总价值最大? 网上关于“多重背包”的资料倒是不少,但 ...
创建图形列表并和CListCtrl关联: m_image_list.Create(IDB_CALLER2, 16, 10, RGB(192,192, 192)); m_image_list.SetBkColor( GetSysColor( COLOR_WINDOW ) ); m_caller_list.SetImageList( &m_image_list, LVSIL_SMALL); 为报表添加4列: char *szColumn[]={"昵称","IP地址","登陆时间","状态"}; ...
1.功能:创建(build objects)对象,将一连串的随意的内存位变对象,也分配资源(memory, files, semaphores, sockets等),"ctor" 是构造函数(constructor)典型的缩写。2.假定List是个类名,Listx和Listx()的区别:前者声明了一个List对象,后者则是一个函数,返回List类型。 3.能否在一个构造函数中调用另一个构造函数?答案是否定的。 假设类Fro有两个构造函数Foo::Foo(char x)和Foo::Foo(char x,int y),那么下面的代码 classFoo{ public: ...
二叉树遍历算法集合(前中后序遍历的递归和非递归算法,层序遍历算法) 费了两天时间写的,包括前中后序遍历的递归和非递归算法,还有层序遍历总共2*3 + 1 = 7中遍历二叉树的算法,感觉其中后序遍历的非递归算法比较困难,想了很久最后的实现还是不够优雅,请大家指正~~ 总共三个文件,一个头文件,一个对应的cpp文件,还有一个用于测试的文件. 头文件: /********************************************************************created:2006/07/04filename:BinaryTree.hauthor: ...
stl的算法(一):对序列进行只读操作(查找、搜索等) Stl的算法的不更改序列操作主要有以下12项: for_each、find、find_if、find_end、find_first_of、adjacent_find count、count_if、mismatch、equal、search、search_n 1、 for_each:遍历某个区域内每个元素 原型:template <class InputIterator, class Function> Function for_each (InputIterator first, InputIterator ...
一、sort:对一定范围内的所有元素排序 原型: template <class RandomAccessIterator> void sort ( RandomAccessIterator first, RandomAccessIterator last ); template <class RandomAccessIterator, class Compare> void sort ( RandomAccessIterator first, RandomAccessIterator last, Compare comp ); 例子代码: // sor ...
STL算法(Algorithms):极值 1、min:返回两个两个参数中的最小值 原型:template <class T> const T& min ( const T& a, const T& b ); template <class T, class Compare> const T& min ( const T& a, const T& b, Compare comp ); 示例: // min example #include <iostream> #include <alg ...
1、make_heap:使序列变成堆原型:template <class RandomAccessIterator> void make_heap ( RandomAccessIterator first, RandomAccessIterator last );template <class RandomAccessIterator, class Compare> void make_heap ( RandomAccessIterator first, RandomAcces
Stl的函数对象的写操作: copy、copy_backward、swap、swap_ranges、iter_swap、transform、 replace、replace_if、replace_copy、replace_copy_if、fill、fill_n、 generate、generate_n、remove、remove_if、remove_copy、remove_copy_if、 unique、unique_copy、reverse、reverse_copy、rotate、rotate_copy、 random_shuffle、partition、stable_parti ...
1、merge:将两个序列合并成一个新的序列,并对新的序列排序 原型: template <class InputIterator1, class InputIterator2, class OutputIterator> OutputIterator merge ( InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2,OutputIterator result ); template <class InputIterator1, cl ...
Global site tag (gtag.js) - Google Analytics