首頁 php教程 PHP开发 c++ STL標準容器之Iterator使用

c++ STL標準容器之Iterator使用

Dec 13, 2016 pm 05:33 PM
iterator

C++ STL絕大多數標準容器都提供了Iterator,一些容器,比如priority_queue,因為語義上就不應該允許隨便遍歷容器中的元素,所以也就沒有Iterator了。

23種經典設計模式中就有迭代器模式,java集合框架也實現了這個模式: 

Java程式碼 

package java.util;  
  
  
public interface Iterator<E> {  
  
    boolean hasNext();  
  
    E next();  
  
  
    void remove();  
}
登入後複製

c++的迭代器要比java更靈活,主要體現在:

1.java只有從前向後的一個迭代器,c++除了從前向後迭代器外,還提供了從後向前的迭代器,例如:

Cpp程式碼 

map<int,int> amap;  
amap.insert(pair<int,int>(1,1));  
amap.insert(pair<int.int>(2,2));  
map<int,int>::iterator it;  
for(it = amap.begin();it != ampa.end();it++)//从前向后  
{  
    cout<<"key:"<<it->first<<" value:"<<it->second<<endl;
登入後複製

Cpp程式碼 

}
登入後複製

Crrrro c++除了iterator之外,還提供了const_iterator,後者只能讀取集合中的數據,但是不能改變其值.

 

3.java的迭代器貌似只能單步自增,而c++的迭代器除此之外,還可以實現算數操作,例如+n,-n,這樣對於需要隨機讀取某個元素的場景就就很有用了,但是,貌似只有vector的iterator才支援算數操作。也就是說前面例子中的迭代器it是不能進行 it = it+n之類的操作的。這一點要切記。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1653
14
CakePHP 教程
1413
52
Laravel 教程
1306
25
PHP教程
1251
29
C# 教程
1224
24
Java Iterator 與 Iterable:揭秘迭代器與可迭代物件的世界 Java Iterator 與 Iterable:揭秘迭代器與可迭代物件的世界 Feb 19, 2024 pm 02:15 PM

在Java程式設計中,Iterator和Iterable介面是用來處理集合中元素的重要工具。 Iterator介面提供了對集合元素進行迭代存取的方法,而Iterable介面則定義了集合的可迭代性,使集合中的元素可以透過Iterator存取。這兩者的緊密配合,為我們提供了遍歷集合元素的通用方法。 Iterator介面Iterator介面定義了以下方法:booleanhasNext():檢查集合中是否還有元素。 Enext():傳回集合中的下一個元素。 voidremove():移除目前元素。 Iterable接

Java Iterator 與 Iterable:邁入編寫優雅程式碼的行列 Java Iterator 與 Iterable:邁入編寫優雅程式碼的行列 Feb 19, 2024 pm 02:54 PM

Iterator介面Iterator介面是一個用於遍歷集合的介面。它提供了幾個方法,包括hasNext()、next()和remove()。 hasNext()方法傳回布林值,指示集合中是否還有下一個元素。 next()方法傳回集合中的下一個元素,並將其從集合中刪除。 remove()方法從集合中刪除目前元素。以下程式碼範例示範如何使用Iterator介面來遍歷集合:Listnames=Arrays.asList("John","Mary","Bob");Iterator

Java Iterator 與 Iterable 的深入比較:優缺點分析 Java Iterator 與 Iterable 的深入比較:優缺點分析 Feb 19, 2024 pm 04:20 PM

概念差異:Iterator:Iterator是一個接口,代表一個從集合中取得值的迭代器。它提供了MoveNext()、Current()和Reset()等方法,讓你遍歷集合中的元素,並對目前元素進行操作。 Iterable:Iterable也是一個接口,代表一個可迭代的物件。它提供了Iterator()方法,用於傳回一個Iterator對象,以便於遍歷集合中的元素。使用方式:Iterator:要使用Iterator,需要先取得一個Iterator對象,然後呼叫MoveNext()方法來移動到下一

Java Iterator 與 Iterable:解鎖 Java 集合的強大力量 Java Iterator 與 Iterable:解鎖 Java 集合的強大力量 Feb 19, 2024 pm 07:00 PM

在Java中,集合(collection)是一組元素的集合,提供了統一的介面和方法來儲存、檢索和操作這些元素。 Iterator和Iterable是兩個重要的Java接口,它們提供了遍歷集合元素的通用機制。 Iterator介面定義了用於遍歷集合的hasNext()和next()方法。 hasNext()方法用於檢查集合中是否還有未遍歷的元素,next()方法用於傳回目前元素並將其移至下一個元素。 Iterable介面定義了iterator()方法,該方法傳回一個Iterator對象,用於遍歷集合中的元

Java Iterator與Iterable:集合遍歷的金鑰,揭開其神秘面紗 Java Iterator與Iterable:集合遍歷的金鑰,揭開其神秘面紗 Feb 20, 2024 am 10:27 AM

Iterator簡介Iterator是Java中用於遍歷集合的介面。它提供了一組方法,讓您以順序的方式存取集合中的元素。您可以使用Iterator來遍歷List、Set和Map等集合類型。示範程式碼:Listlist=newArrayList();list.add("one");list.add("two");list.add("three");Iteratoriterator=list.iterator();while(iter

Java文件解讀:HashSet類別的iterator()方法用法詳解 Java文件解讀:HashSet類別的iterator()方法用法詳解 Nov 03, 2023 am 09:44 AM

Java文件解讀:HashSet類別的iterator()方法用法詳解,需要具體程式碼範例在Java程式設計中,HashSet是常用的集合類別之一,它實作了Set接口,並且繼承自AbstractSet類別。 HashSet類別的iterator()方法是用來傳回一個迭代器對象,用來遍歷HashSet中的元素。本文將詳細解讀HashSet類別的iterator()方法的用法,並

Java Iterator 與 Iterable:深入剖析 Java 集合遍歷機制 Java Iterator 與 Iterable:深入剖析 Java 集合遍歷機制 Feb 19, 2024 pm 08:36 PM

Iterator介面Iterator介面是Java集合框架中用於遍歷集合的低階介面。它定義了兩個主要方法:hasNext():檢查集合中是否還有更多元素。 next():傳回集合中的下一個元素。 Iterator介面也定義了一些可選的方法,例如remove()方法,用於從集合中刪除目前元素。使用Iterator介面可以使用下列步驟使用Iterator介面遍歷集合:取得集合的Iterator物件。使用hasNext()方法檢查集合中是否還有更多元素。如果還有更多元素,則使用next()方法取得下一個元

Java Iterator與Iterable:揭露集合遍歷的幕後故事 Java Iterator與Iterable:揭露集合遍歷的幕後故事 Feb 19, 2024 pm 04:15 PM

迭代器(Iterator)和可迭代物件(Iterable)是Java集合框架中兩個非常重要的介面。它們使您能夠遍歷集合中的元素,而無需了解集合的具體實現。 Iterator介面定義了用於遍歷集合的方法,包括hasNext()和next()。 hasNext()方法檢查集合中是否還有更多元素,而next()方法傳回集合中的下一個元素。 Iterable介面定義了一個用來建立Iterator的方法,即iterator()方法。此方法傳回一個Iterator對象,該物件可以用於遍歷集合。以下是使用Itera

See all articles