Welcom to RO_wsy's blog

上一页 1 ··· 6 7 8 9 10 11 下一页
摘要: map中存放的是键值对,而set中存放的只是键的集合,所以set中没有mapped_type类型,value_type也是不pair类型,而是与容器中存放元素的类型相同。set的操作与大部分map操作相同,但是不支持下标操作。set提供的操作如下:begin()返回指向第一个元素的迭代器clear()清除所有元素count()返回某个值元素的个数empty()如果集合为空,返回trueend()返回指向最后一个元素的迭代器equal_range()返回集合中与给定值相等的上下限的两个迭代器erase()删除集合中的元素find()返回一个指向被查找到元素的迭代器get_allocator()返 阅读全文
posted @ 2012-06-27 19:42 RO_wsy 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 归并排序是一种高效的排序算法,时间复杂度为nlogn,与快排相当,是分治法的一种典型应用。归并排序的思想是将若干个有序的序列合并为一个有序序列,常用的是二路归并,也就是将两个有序子序列合并为一个序列。归并排序可用递归完成,第一次排序将序列分成两部分,第二次排序将两序列在分成两部分,如此下去,直到每个子序列只有一个元素,则子序列自然有序,然后合并即可。归并操作的工作原理如下: 1.申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列 2.设定两个指针,最初位置分别为两个已经排序序列的起始位置 3.比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下... 阅读全文
posted @ 2012-06-27 14:39 RO_wsy 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 本程序的功能是对文本中需要转换的单词进行转换。程序需要两个文件,一个文件存放转换单词对照表,另一个文件存放要进行转换的文本。本程序的文本文件内容如下:trans_word_map.txt'em themcuz becausegratz gratefuli Inah nopos supposedsez saidtanx thankswuz wasto_be_trans.txtnah i sez tanx cuz i wuz pos to not cuz i wuz gratz程序设计和思路在程序注释中有说明,不再赘述代码如下:/** 单词转换程序* 命令后带两个参数* 第一个参数表示对照 阅读全文
posted @ 2012-06-27 11:11 RO_wsy 阅读(236) 评论(0) 推荐(0) 编辑
摘要: map可以理解为之中关联数组,之所以称为关联是因为map是通过键值来访问,而不是通过元素在数组中的位置来访问。map的键类型必须满足严格弱排序,解释一下:1.当键值与自身比较时,一定产生false结果2.两个键不能相互小于,而且如果 k1<k2, k2<k3 那么 k1<k33.如果两个键值相互不小于,则视为相等map定义的类型:map<k, v>::key_type;键的类型map<k, v>::mapped_type;键所关联值的类型map<k, v>::value_type;一个pair类型,pair类型就是包含两个类型的一种模板类型 阅读全文
posted @ 2012-06-27 09:17 RO_wsy 阅读(126) 评论(0) 推荐(0) 编辑
摘要: STL的顺序容器还有最后两种,这两种都是适配器,分别是queue和priority_queue,这两种容器用法基本相同,所以就放在一块说了。他俩的构造函数形式与stack完全一样,而且都包含在queue头文件中。他们提供的操作如下:queue:back() 返回最后一个元素 empty() 如果队列空则返回真 front() 返回第一个元素 pop() 删除第一个元素 push() 在末尾加入一个元素 size() 返回队列中元素的个数priority_queue:empty() 如果优先队列为空,则返回真 pop() 删除第一个元素 push() 加入一个元素 size() 返回优先队列中拥 阅读全文
posted @ 2012-06-26 15:46 RO_wsy 阅读(234) 评论(0) 推荐(0) 编辑
摘要: deque是double-ended queue的简称,是一种类似vector的容器,提供随机访问功能,与vector不同的是,deque可以实现在头部和尾部两端插入元素。deque提供的操作和vector很相似,列出如下:Constructors 创建一个新双向队列构造函数有如下原型: deque();//无参 deque( size_type size );//构造n个元素的deque deque( size_type num, const TYPE &val );//构造n个元素初始化为val的deque deque( const deque &from );//初始化为 阅读全文
posted @ 2012-06-26 14:51 RO_wsy 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 先说明一个概念,适配器(adapter),适配器是标准库中的通用概念,包括容器适配器、迭代器适配器、函数适配器。本质上,适配器是使一事物的行为类似于另一事物的行为的一种机制。容器适配器让一种已存在的容器类型以一种不同的抽象类型的工作方式实现。STL提供了三种顺序容器适配器,queue、priority_queue、stack。每一种适配器都定义了两个构造函数,如下:A a;//创建空适配器aA a(c);//用一个容器c初始化适配器a默认的stack和queue都基于deque实现,priority_queue基于vector实现。创建适配器时通过将一个顺序容器指定为适配器的第二个类型实参,可 阅读全文
posted @ 2012-06-26 07:55 RO_wsy 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 下面来看简约神功第二式,组织。这种策略比较常用,成本也低,仅仅是改变界面的布局或者标签的位置即可达到。组织的方式和原则主要有一下几种:一:分块。这是一种非常常见的组织方式,大部分软件应该都有菜单栏吧,菜单栏就是对所有的功能分成了几大块,就拿word来说吧,将功能分为了9个大的菜单,每个菜单中又有许多菜单项,如果菜单项还有许多功能,就在将菜单项分解成几个菜单项,比如说视图->工具栏下还有许多工具选项。一般来说,分块要遵循7加减1的规则,因为人的大脑可以瞬间记住的最大数目也就7,8个。虽然这不是死规定,但分块应该尽量比这少,而不是比十块以上,总之,越少的块数用户接受起来就越轻松。二:围绕着行 阅读全文
posted @ 2012-06-26 07:21 RO_wsy 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 闲着没事,做个小小的测试,测试一下冒泡,选择,插入和快速四种排序对同一个含有1000000个元素的数组排序所用的时间,做个比较。四种排序的代码如下:冒泡排序:template <typename T> void bubble_sort(T a[], int num){ if(num ==0 || num == 1) return ; bool changed = false; do{ for(int i=0; i<num-1; i++){ if(a[i] < a[i+1]){ swap(a[i], a[i+1]); changed = true; } ... 阅读全文
posted @ 2012-06-25 21:58 RO_wsy 阅读(416) 评论(0) 推荐(0) 编辑
摘要: 快速排序是一种效率很高的排序,具有最好nlogn,最坏n2的复杂度,总的来说,快排的效果是非常好的,如果有兴趣研究算法性能的分析,推荐阅读《算法导论》,我在这里就不分析了,也分析不明白。总之,它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。举个例子:a[5] = {4, 2, 5, 3, 1}假如选第一个元素为分割元素,第一趟排序之后的序列为:2 3 1 4 5左边的序列为(左一)2 3 1右边的序列为(右一)5递归排序左右两序 阅读全文
posted @ 2012-06-25 20:21 RO_wsy 阅读(155) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 下一页