欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++特性:迭代器

 更新時(shí)間:2021年06月30日 09:04:31   作者:CSDN_564174144  
這篇文章主要介紹了C++特性:迭代器,本文主要通過介紹迭代器,迭代器和指針的區(qū)別,容器迭代器的使用等方面,需要的朋友可以參考下

1. 迭代器(Iterator)的介紹

背景:指針可以用來遍歷存儲(chǔ)空間連續(xù)的數(shù)據(jù)結(jié)構(gòu),但是對(duì)于存儲(chǔ)空間費(fèi)連續(xù)的,就需要尋找一個(gè)行為類似指針的類,來對(duì)非數(shù)組的數(shù)據(jù)結(jié)構(gòu)進(jìn)行遍歷。
定義:迭代器是一種檢查容器內(nèi)元素并遍歷元素的數(shù)據(jù)類型。
迭代器提供對(duì)一個(gè)容器中的對(duì)象的訪問方法,并且定義了容器中對(duì)象的范圍。
迭代器(Iterator)是指針(pointer)的泛化,它允許程序員用相同的方式處理不同的數(shù)據(jù)結(jié)構(gòu)(容器)。
(1)迭代器類似于C語言里面的指針類型,它提供了對(duì)對(duì)象的間接訪問。
(2)指針是C語言中的知識(shí)點(diǎn),迭代器是C++中的知識(shí)點(diǎn)。指針較靈活,迭代器功能較豐富。
(3)迭代器提供一個(gè)對(duì)容器對(duì)象或者string對(duì)象的訪問方法,并定義了容器范圍。

2. 迭代器和指針的區(qū)別:

容器和string有迭代器類型同時(shí)擁有返回迭代器的成員。如:容器有成員begin和end,其中begin成員復(fù)制返回指向第一個(gè)元素的迭代器,而end成員返回指向容器尾元素的下一個(gè)位置的迭代器,也就是說end指示的是一個(gè)不存在的元素,所以end返回的是尾后迭代器。

3. 容器迭代器的使用

每種容器類型都定義了自己的迭代器類型,如vector:vector< int>:: iterator iter;//定義一個(gè)名為iter的變量,數(shù)據(jù)類型是由vector< int>定義的iterator 類型。簡(jiǎn)單說就是容器類定義了自己的iterator類型,用于訪問容器內(nèi)的元素。每個(gè)容器定義了一種名為iterator的類型,這種類型支持迭代器的各種行為。
常用迭代器類型如下:

這里寫圖片描述

如上圖所示,迭代器類型主要支持兩類,隨機(jī)訪問和雙向訪問。其中vector和deque支持隨機(jī)訪問,list,set,map等支持雙向訪問。
1)隨機(jī)訪問:提供了對(duì)數(shù)組元素進(jìn)行快速隨機(jī)訪問以及在序列尾部進(jìn)行快速插入和刪除操作。
2)雙向訪問:插入和刪除所花費(fèi)的時(shí)間是固定的,與位置無關(guān)。

4. 迭代器的操作

1、所有迭代器:

這里寫圖片描述

2、雙向迭代器:

這里寫圖片描述

3、輸入迭代器:

列表內(nèi)容

4、輸出迭代器

這里寫圖片描述

5、隨機(jī)迭代器

這里寫圖片描述

到此這篇關(guān)于C++特性:迭代器的文章就介紹到這了,更多相關(guān)C++ 迭代器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 一文帶你學(xué)習(xí)C++中的派生機(jī)制

    一文帶你學(xué)習(xí)C++中的派生機(jī)制

    C++是一門面向?qū)ο蟮木幊陶Z言,其中的派生機(jī)制是其重要的面向?qū)ο筇匦灾?。本文我們就來詳?xì)地學(xué)習(xí)一下C++中的派生機(jī)制的相關(guān)知識(shí)吧
    2023-04-04
  • VSCode搭建STM32開發(fā)環(huán)境的方法步驟

    VSCode搭建STM32開發(fā)環(huán)境的方法步驟

    當(dāng)我們的工程文件比較大的時(shí)候,編譯一次代碼需要很久可能會(huì)花費(fèi)到四五分鐘,但是我們用vscode編寫和編譯的話時(shí)間就會(huì)大大縮減,本文就介紹一下VSCode搭建STM32開發(fā)環(huán)境,感興趣的可以了解一下
    2021-07-07
  • C++函數(shù)模板與重載解析超詳細(xì)講解

    C++函數(shù)模板與重載解析超詳細(xì)講解

    模板是C++最重要的設(shè)計(jì)。這篇文章講的是函數(shù)模板,只是簡(jiǎn)單介紹模板的一些功能,關(guān)于模板的更多的內(nèi)容會(huì)在類模板中詳細(xì)介紹。文章還著重介紹了重載解析過程
    2022-08-08
  • C語言實(shí)現(xiàn)簡(jiǎn)單的掃雷游戲操作

    C語言實(shí)現(xiàn)簡(jiǎn)單的掃雷游戲操作

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)簡(jiǎn)單的掃雷游戲操作,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • Opencv分水嶺算法學(xué)習(xí)

    Opencv分水嶺算法學(xué)習(xí)

    這篇文章主要為大家詳細(xì)介紹了Opencv分水嶺算法的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • C++實(shí)踐數(shù)組作數(shù)據(jù)成員的參考

    C++實(shí)踐數(shù)組作數(shù)據(jù)成員的參考

    今天小編就為大家分享一篇關(guān)于C++實(shí)踐數(shù)組作數(shù)據(jù)成員的參考,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • C++實(shí)現(xiàn)LeetCode(159.最多有兩個(gè)不同字符的最長(zhǎng)子串)

    C++實(shí)現(xiàn)LeetCode(159.最多有兩個(gè)不同字符的最長(zhǎng)子串)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(159.最多有兩個(gè)不同字符的最長(zhǎng)子串),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C語言中輸出空格的五種方法

    C語言中輸出空格的五種方法

    在C語言中,輸出空格可以通過使用?printf?函數(shù)來實(shí)現(xiàn),可以直接在字符串中包含空格,或者使用轉(zhuǎn)義字符來控制格式,本文給大家介紹了幾種常見的輸出空格的方法,需要的朋友可以參考下
    2024-08-08
  • C語言指針必備基礎(chǔ)全面覆蓋

    C語言指針必備基礎(chǔ)全面覆蓋

    數(shù)據(jù)對(duì)象是指存儲(chǔ)在內(nèi)存中的一個(gè)指定數(shù)據(jù)類型的數(shù)值或字符串,它們都有一個(gè)自己的地址,指針是保存這個(gè)地址的變量,本篇文章帶你掌握C語言指針的用法
    2021-10-10
  • C++中mutable與volatile的深入理解

    C++中mutable與volatile的深入理解

    這篇文章主要給的阿加介紹了關(guān)于C++中mutable與volatile的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11

最新評(píng)論