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

C++特性:迭代器

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

1. 迭代器(Iterator)的介紹

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

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

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

3. 容器迭代器的使用

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

這里寫圖片描述

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

4. 迭代器的操作

1、所有迭代器:

這里寫圖片描述

2、雙向迭代器:

這里寫圖片描述

3、輸入迭代器:

列表內(nèi)容

4、輸出迭代器

這里寫圖片描述

5、隨機迭代器

這里寫圖片描述

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

    C++實現(xiàn)LeetCode(159.最多有兩個不同字符的最長子串)

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

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

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

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

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

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

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

最新評論