2012年6月14日

Kruskal算法优先级队列版 算法基础篇(五)

摘要: View Code 1 // Kruskal算法.cpp : 定义控制台应用程序的入口点。 2 // 3 4 #include "stdafx.h" 5 #include <queue> 6 #include <string> 7 #include <iostream> 8 using namespace std; 9 #define Infinity 1000 10 #define Max 20 11 typedef int ElemType; 12 typedef unsigned int EdgeType; 13 typedef i 阅读全文

posted @ 2012-06-14 19:39 北冥茶花开 阅读(169) 评论(0) 推荐(0) 编辑

Effective C++ C++虚函数默认参数机制

摘要: 直接上原文吧,最后加几句细点的理解条款38:决不要重新定义继承而来的缺省参数值让我们从一开始就把问题简化。缺省参数只能作为函数的一部分而存在;另外,只有两种函数可以继承:虚函数和非虚函数。因此,重定义缺省参数值的唯一方法是重定义一个继承而来的函数。然而,重定义继承而来的非虚函数是一种错误(参见条款37),所以,我们完全可以把讨论的范围缩小为 "继承一个有缺省参数值的虚函数" 的情况。既然如此,本条款的理由就变得非常明显:虚函数是动态绑定而缺省参数值是静态绑定的。什么意思?你可能会说你不懂这些最新的面向对象术语;或者,过度劳累的你一时想不起静态和动态绑定的区别。那么,让我们来 阅读全文

posted @ 2012-06-14 16:57 北冥茶花开 阅读(308) 评论(0) 推荐(0) 编辑

Priority_Queue那些往事!

摘要: STL之优先队列原本以为priority_queue很简单,才知道原来懂的只是最简单的形式。头文件:#include<queue>优先队列,也就是原来我们学过的堆,按照自己定义的优先级出队时。默认情况下底层是以Vector实现的heap。既然是队列,也就只有入队、出队、判空、大小的操作,并不具备查找功能。函数列表:empty() 如果优先队列为空,则返回真pop() 删除第一个元素push() 加入一个元素size() 返回优先队列中拥有的元素的个数top() 返回优先队列中有最高优先级的元素用途就不用多说了吧,例如Huffman编码、分支限界、A*启发式都需要用到优先队列存放信息 阅读全文

posted @ 2012-06-14 16:56 北冥茶花开 阅读(109) 评论(0) 推荐(0) 编辑

C++ 0x 之左值与右值、右值引用、移动语义、传导模板(转载)

摘要: 文 / 李博(光宇广贞) 左值与右值左值与右值的概念要追溯到 C 语言,由 C++ 语言继承了上来。C++ 03 3.10/1 如是说:“Every expression is either anlvalueor anrvalue.”左值与右值是指表达式的属性,而非对像的属性。左值具名,对应指定内存域,可访问;右值不具名,不对应内存域,不可访问。临时对像是右值。左值可处于等号左边,右值只能放在等号右边。区分表达式的左右值属性有一个简便方法:若可对表达式用&符取址,则为左值,否则为右值。 注意区分 ++x 与 x++。前者是左值表达式,后者是右值表达式。前者修改自身值,并返回自身;后者先 阅读全文

posted @ 2012-06-14 16:53 北冥茶花开 阅读(163) 评论(0) 推荐(0) 编辑

Prim算法优先级队列版 算法基础篇(四)

摘要: View Code 1 // Prim算法.cpp : 定义控制台应用程序的入口点。 2 // 3 4 #include "stdafx.h" 5 #include <stdio.h> 6 #include <string> 7 #include <queue> 8 #include <stdlib.h> 9 using namespace std; 10 #define Max 10 11 #define Infinity 1000 12 typedef unsigned int EdgeType; 13 typedef u 阅读全文

posted @ 2012-06-14 16:46 北冥茶花开 阅读(222) 评论(0) 推荐(0) 编辑

关于STL优先级队列的一些应用

摘要: View Code In their implementation in the C++ Standard Template Library, priority queues take three template parameters:template < class T, class Container = vector<T>, class Compare = less<typename Container::value_type> > class priority_queue; Where the template parameters have th 阅读全文

posted @ 2012-06-14 13:23 北冥茶花开 阅读(551) 评论(0) 推荐(0) 编辑

Dijkstra算法优先级队列版 算法基础篇(三)

摘要: View Code 1 // 优先队列的Dijkstra算法.cpp : 定义控制台应用程序的入口点。 2 // 3 4 #include "stdafx.h" 5 #include <stdio.h> 6 #include <queue> 7 #include <vector> 8 #include <stdlib.h> 9 using namespace std; 10 #define NotAVertex (-1) 11 #define NumVertex 20 12 #define Infinity 1000 13 t 阅读全文

posted @ 2012-06-14 12:33 北冥茶花开 阅读(364) 评论(0) 推荐(0) 编辑

导航