容器和算法2让编程改动国际Changetheworldbyprogram迭代器上节课咱们的栗子尽管作业得很好并也运用了一个规范的容器(向量容器),但它仍是有个小问题。便是在遍历向量里的各个元素时,咱们仍把它视为一个C++数组来对待。刚好咱们的向量容器答应运用下表操作符来拜访它的各个元素:names<inputtype="checkbox"checked=""disabled="">可是假如想改用另一种不供给此办法拜访的容器(比方栈),咱们就不得不对程序做许多修正才得以完结。由于对容器里的各个元素进行遍历是一种十分常见的使命,所以应该有一种规范的办法来做这件事,对吧?C++规范库供给的各种迭代器(iterator)便是这么来的。迭代器是一种功用十分有限却十分有用的函数,供给一些根本操作符:*、++、==、!=、=。迭代器是个所谓的智能指针,具有遍历杂乱数据结构的才能。由于迭代器的功用是如此的根本,所以规范库里的每一种容器都支撑。通过运用迭代器,当在程序里改用另一种容器的时分就用不着修正那么多的代码了。每一种容器都必须供给自己的迭代器,事实上每种容器都将其迭代器以嵌套的办法界说于内部。因而各种迭代器的接口相同,类型却不同,这便是所谓泛型程序设计的概念:一切操作行为都运用相同接口,尽管它们的详细完结不同。修正vector.cpp,运用迭代器。算法算法,恩,为了让咱们体会到算法的无比奇特,小王八先给咱们讲一个小故事吧,在好久好久以前。。。。。。回忆咱们方才对向量示例程序的修正,其他先不说,用来遍历向量元素的循环比本来杂乱了许多,可代码的行为仍是老样子。迭代器的真实价值体现在它们能够和一切的容器合作运用,而运用迭代器去拜访容器元素的算法能够和任何一种容器合作运用。小王八将带咱们再修正一下这个栗子,然后演示算法的威力:在输出该容器里的元素之前,先按字母次序对它们进行排序。对数据进行排序对人类来说如同仅仅个简略的问题,但要想高效率地完结这个使命其实并没有幻想中那么简略。人们现已对排序问题总结出许多不同的算法:冒泡排序、堆排序、快速排序等等。每种算法都有它们的长处和缺陷,而只要那些最简略的算法才比较简单以咱们个人之力完结。所幸的是,C++规范库包含着一个通过全面优化的排序算法,它的处理速度也十分抱负。要想运用这个算法,只需先把algorithm文件包含到源文件里:#include然后再像下面这样调用sort()办法就能够了:std::sort(beginIterator,endIterator);演示!完毕语完毕?!不,好戏才刚刚开始!在《数据结构和算法》系列教程里,小王八会从原理层面来带咱们知道更多的数据结构和算法,咱们能够用咱们学到的常识把它们封装成容器!敬请重视,敬请收看!灰常感谢咱们对小王八的支撑,咱们后会有期!视频下载备用视频下载
技能,IT技能,CPP,视频教程
最新评论