快捷搜索:  创业 手机 疯狂 坏人 华人 发明 自己

[002273股票]容器和算法2 – C++快速入门48(完)

容器和算法2

让编程改动国际

Changetheworldbyprogram

迭代器

上节课咱们的栗子尽管作业得很好并也运用了一个规范的容器(向量容器),但它仍是有个小问题。

便是在遍历向量里的各个元素时,咱们仍把它视为一个C++数组来对待。

刚好咱们的向量容器答应运用下表操作符来拜访它的各个元素:names<inputtype="checkbox"checked=""disabled="">

可是假如想改用另一种不供给此办法拜访的容器(比方栈),咱们就不得不对程序做许多修正才得以完结。

由于对容器里的各个元素进行遍历是一种十分常见的使命,所以应该有一种规范的办法来做这件事,对吧?

C++规范库供给的各种迭代器(iterator)便是这么来的。

迭代器是一种功用十分有限却十分有用的函数,供给一些根本操作符:*、++、==、!=、=。

迭代器是个所谓的智能指针,具有遍历杂乱数据结构的才能。

由于迭代器的功用是如此的根本,所以规范库里的每一种容器都支撑。

通过运用迭代器,当在程序里改用另一种容器的时分就用不着修正那么多的代码了。

每一种容器都必须供给自己的迭代器,事实上每种容器都将其迭代器以嵌套的办法界说于内部。

因而各种迭代器的接口相同,类型却不同,这便是所谓泛型程序设计的概念:一切操作行为都运用相同接口,尽管它们的详细完结不同。

修正vector.cpp,运用迭代器。

算法

算法,恩,为了让咱们体会到算法的无比奇特,小王八先给咱们讲一个小故事吧,在好久好久以前。。。。。。

回忆咱们方才对向量示例程序的修正,其他先不说,用来遍历向量元素的循环比本来杂乱了许多,可代码的行为仍是老样子。

迭代器的真实价值体现在它们能够和一切的容器合作运用,而运用迭代器去拜访容器元素的算法能够和任何一种容器合作运用。

小王八将带咱们再修正一下这个栗子,然后演示算法的威力:在输出该容器里的元素之前,先按字母次序对它们进行排序。

对数据进行排序对人类来说如同仅仅个简略的问题,但要想高效率地完结这个使命其实并没有幻想中那么简略。

人们现已对排序问题总结出许多不同的算法:冒泡排序、堆排序、快速排序等等。

每种算法都有它们的长处和缺陷,而只要那些最简略的算法才比较简单以咱们个人之力完结。

所幸的是,C++规范库包含着一个通过全面优化的排序算法,它的处理速度也十分抱负。

要想运用这个算法,只需先把algorithm文件包含到源文件里:#include

然后再像下面这样调用sort()办法就能够了:

std::sort(beginIterator,endIterator);

演示!

完毕语

完毕?!不,好戏才刚刚开始!

在《数据结构和算法》系列教程里,小王八会从原理层面来带咱们知道更多的数据结构和算法,咱们能够用咱们学到的常识把它们封装成容器!

敬请重视,敬请收看!

灰常感谢咱们对小王八的支撑,咱们后会有期!

视频下载

备用视频下载
技能,IT技能,CPP,视频教程

您可以还会对下面的文章感兴趣:

  • [002273股票]容器和算法2 – C++快速入门48(完)
  • st长信((27482)中移法兴九七购C)
  • [002839股票资金流向全览]基金排名要怎么看(支付宝基金怎么看收益率排名)
  • [600735股吧]余额宝只能买基金了吗(余额宝只能买一种基金)
  • [300004]钢铁行业龙头股有哪些?
  • 最新评论