真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

為何使用迭代器?-創(chuàng)新互聯(lián)

STL是一種泛型編程。那么泛型編程與面向?qū)ο缶幊逃惺裁床煌兀?/em>泛型編程關(guān)注的是算法,而面向?qū)ο缶幊剃P(guān)注的編程的數(shù)據(jù)方面。共同點(diǎn)是,都通過抽象和創(chuàng)建可重用的代碼,提升編程效率。但是兩者的理念絕然不同。為何使用迭代器?理解迭代器是理解STL的關(guān)鍵所在。通常情況下,我們遍歷數(shù)組是通過 p++,遍歷鏈表是p = p->next,遍歷二叉樹,還分為p =p->left,p = p->right;我們對指針如何操作,取決于其存儲的數(shù)據(jù)結(jié)構(gòu)。而迭代器的作用,就是使這些操作獨(dú)立于數(shù)據(jù)結(jié)構(gòu)。模板使得算法,獨(dú)立于數(shù)據(jù)類型;迭代器使得算法,獨(dú)立于容器類型(數(shù)據(jù)結(jié)構(gòu))。

成都創(chuàng)新互聯(lián)是一家專業(yè)提供東烏珠穆沁企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、HTML5、小程序制作等業(yè)務(wù)。10年已為東烏珠穆沁眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。主要思想以STL算法庫(algorithm)中的find()函數(shù)舉例。泛型編程旨在使用同一個(gè)find函數(shù),來處理vector、list或其他任何容器類型。即函數(shù)不僅獨(dú)立于數(shù)據(jù)類型,還獨(dú)立于容器的數(shù)據(jù)結(jié)構(gòu)。所以要實(shí)現(xiàn)find函數(shù),迭代器應(yīng)具備那些特征呢?
  • ?????能夠解引用,即取*操作;
  • ?????能夠賦值,即對于兩個(gè)迭代器,應(yīng)可以使用表達(dá)式p = q;
  • ?????能夠比較,即 p == q或? p != q;
  • ?????能遍歷所有元素,即能夠p++和++p;
即重載“ * ”“ = ”、" == "" != "、" p++ "" ++p "運(yùn)算符。以List為例:

這樣在List中,對指針的操作就和在vector中基本是一樣的了。(這里穿插一個(gè)概念,對于不同的容器,迭代器可能是指針,也可能是對象。


為什么說是基本一樣呢?最后的差別在于,如何判斷到達(dá)最后一個(gè)元素。vector通過判斷是否遍歷到了最后一個(gè)元素的下一個(gè)元素,使用了超尾迭代器。List則是通過判斷最后一個(gè)結(jié)點(diǎn)中的next是否為空。


為了使迭代器的使用完相同,可以要求鏈表最后一個(gè)元素后面,還有一個(gè)額外的元素。(超尾元素)。這樣使find函數(shù)在面對vector和List時(shí),都在迭代器達(dá)到超尾位置時(shí)結(jié)束。?注意:這使得,超尾元素從對迭代器的要求,變成了對容器的要求STL為使通用算法能夠適用于具體情況,應(yīng)定義能夠滿足算法需求的迭代器,并要求把對迭代器的部分要求,加到容器設(shè)計(jì)上。

??????????????????????????????????????????????????????????????????????????????????????????????????????? ?-----本文摘自《C++ Prinmer Plus》第六版 553頁

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧


分享標(biāo)題:為何使用迭代器?-創(chuàng)新互聯(lián)
文章地址:http://weahome.cn/article/dogicg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部