最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

c++下迭代器總結

 更新時間:2021年12月22日 16:15:37   作者:CSSDCC  
大家好,本篇文章主要講的是c++下迭代器總結,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽

1. 迭代器介紹

本章并不研究不同類型的迭代器,只總結常見迭代器的使用和誤區(qū)。

定義:迭代器(iterator)有時又稱光標(cursor),是程序設計的軟件設計模式,可在容器對象(container,例如鏈表或數(shù)組)上遍歷的接口,設計人員無需關心容器對象的內存分配的實現(xiàn)細節(jié)。

背景:指針可以用來遍歷存儲空間連續(xù)的數(shù)據(jù)結構,但是對于非連續(xù)存儲的數(shù)據(jù)結構,就需要一個行為類似于指針的類,來對非連續(xù)數(shù)據(jù)結構進行遍歷。正如定義里標紅所說,迭代器可以遍歷非連續(xù)的數(shù)據(jù)結構。

在C++中,我們更傾向于使用迭代器而不是使用下標操作,因為標準庫為每一種標準容器(如vector)定義了一種迭代器類型,而只有少數(shù)容器(如vector)支持下標操作訪問容器元素。

2. 初始化

每種容器都定義了自己的迭代器類型,可以使用auto自動聲明迭代器的類型,也可以顯示的將迭代器類型寫出來:

//只有順序容器(不包括array)的構造函數(shù)才接受大小參數(shù)
vector<int> vec(num, val);
vector<int>::iterator it = vec.begin();
//auto it = vec.begin();

3. 常用操作

下面表格列出了迭代器的常用操作:

*iter 解引用,返回迭代器指向的元素的引用
iter->member 等效于(*iter).member
++iter, iter++ iter + 1,指向容器的下一個元素
–iter, iter– 同上
iter1 == iter2 比較兩個迭代器是否相等
iter1 != iter2

在C++定義的容器類型中,只有vector,string和queue容器提供迭代器算術運算和除!=和==之外的關系運算:

iter + n, iter - n 迭代器+或-一個常數(shù),必須指向容器內或尾后元素(end())
iter1 += iter2 同上
iter1 -= iter2 同上
iter1 - iter2 獲得兩個迭代器之間的距離
>, >=, <, <= 元素靠后的迭代器大于靠前的迭代器

注意:

迭代器并不是所有都可以進行加減常數(shù)。 能進行算數(shù)運算的迭代器只有隨機訪問迭代器。要求容器元素存儲在連續(xù)空間內;即vector、string、deque的迭代器是有加減法的;但是list、forward_list、map、set的迭代器是沒有加減法的,它們僅支持++iter、–iter這些操作。 it++和++it的區(qū)別

在STL中的容器使用迭代器進行遍歷時,it++與++it的效果是相同的,遍歷的次數(shù)也是相同的,但是在STL中效率卻不同:

++it返回的是引用;it++返回的是臨時對象;–it同理。

原因:it++每次都要返回一個無用的臨時對象,所以每一次遍歷,你都進行了一次創(chuàng)建并銷毀對象的操作。(leetcode小本本記好了!)

總結

到此這篇關于c++下迭代器總結的文章就介紹到這了,更多相關c++ 迭代器內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Qt項目實戰(zhàn)之實現(xiàn)MP3音樂播放器

    Qt項目實戰(zhàn)之實現(xiàn)MP3音樂播放器

    這篇文章主要為大家詳細介紹了如何利用Qt實現(xiàn)MP3音樂播放器,文中的示例代碼講解詳細,具有一定的參考價值,感興趣的小伙伴可以了解一下
    2023-03-03
  • 基于C語言實現(xiàn)隨機點名器(附源碼)

    基于C語言實現(xiàn)隨機點名器(附源碼)

    這篇文章主要為大家詳細介紹如何基于C語言實現(xiàn)一個簡單的隨機點名器,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起動手嘗試一下
    2022-07-07
  • C和C++混合編程問題

    C和C++混合編程問題

    這篇文章主要介紹了C和C++混合編程問題,需要的朋友可以參考下
    2015-10-10
  • 基于Matlab實現(xiàn)水波倒影特效的制作

    基于Matlab實現(xiàn)水波倒影特效的制作

    這篇文章主要介紹了如何利用Matlab制作出水波倒影的特效,文中的示例代碼講解詳細,對我們學習Matlab有一定幫助,需要的可以參考一下
    2022-03-03
  • 詳解Qt如何使用QtWebApp搭建Http服務器

    詳解Qt如何使用QtWebApp搭建Http服務器

    這篇文章主要為大家詳細介紹了Qt如何使用QtWebApp搭建Http服務器,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-12-12
  • Easyx實現(xiàn)窗口自動碰撞的小球

    Easyx實現(xiàn)窗口自動碰撞的小球

    這篇文章主要為大家詳細介紹了Easyx實現(xiàn)窗口自動碰撞的小球,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • C++淺析缺省參數(shù)的使用

    C++淺析缺省參數(shù)的使用

    所謂缺省參數(shù),顧名思義,就是在聲明函數(shù)的某個參數(shù)的時候為之指定一個默認值,在調用該函數(shù)的時候如果采用該默認值,你就無須指定該參數(shù)。缺省參數(shù)使用主要規(guī)則:調用時你只能從最后一個參數(shù)開始進行省略,換句話說,如果你要省略一個參數(shù),你必須省略它后面所有的參數(shù)
    2022-05-05
  • 學生成績管理系統(tǒng)C語言代碼實現(xiàn)

    學生成績管理系統(tǒng)C語言代碼實現(xiàn)

    這篇文章主要為大家詳細介紹了C語言代碼實現(xiàn)學生成績管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • C++回溯算法中的全排列問題分析探討

    C++回溯算法中的全排列問題分析探討

    遞歸中遇到一個問題全排列的問題,我看見回溯特別神奇,特此記錄一下。對比一下深度優(yōu)先搜索與廣度優(yōu)先搜索,個人感覺這里的回溯像是一種遞歸樹中的深度優(yōu)先搜索的算法,他不斷構造往下延伸的深度,使其達到完全編列
    2023-03-03
  • C中qsort快速排序使用實例

    C中qsort快速排序使用實例

    在學習C++ STL的sort函數(shù),發(fā)現(xiàn)C中也存在一個qsort快速排序,要好好學習下C的庫函數(shù)啊
    2014-01-01

最新評論

重庆市| 勐海县| 永宁县| 屏山县| 航空| 南阳市| 富裕县| 静宁县| 车致| 遵义市| 宁武县| 航空| 大港区| 伊春市| 同德县| 玉山县| 邵阳县| 汝城县| 阿坝县| 紫云| 右玉县| 石首市| 新民市| 兴城市| 棋牌| 响水县| 晋州市| 萨迦县| 灵武市| 秭归县| 喀喇沁旗| 汽车| 东台市| 通州市| 金乡县| 彝良县| 富川| 襄樊市| 夹江县| 饶阳县| 临清市|