迭代器的作用什麼,迭代器主要作用是什麼

2022-11-26 10:25:23 字數 3628 閱讀 3498

1樓:孫中呂

你需要理解什麼是陣列array,什麼是集合iconnection,什麼是ilist開始.

舉個簡單例子:

陣列如 string ar=new string

這是一個簡單字串陣列。

假設我需要提取陣列中的每一個元素,我該怎麼辦呢?

所以那些天才們就想出一種方案,用c#語法表達是:

forech(string item in ar)

然後你可以把forech(string item in ar)這種語法理解為迭代器.

專業解釋:

1.迭代器是可以返回相同型別值的有序序列的一段**;

2.迭代器可用作方法、運算子或get訪問器的**體;

3.迭代器**使用yield return語句依次返回每個元素,yield break將終止迭代;

4.可以在類中實現多個迭代器,每個迭代器都必須像任何類成員一樣有惟一的名稱,並且可以在foreach語句中被客戶端**呼叫;

5.迭代器的返回型別必須為ienumerable和ienumerator中的任意一種;

6.迭代器是產生值的有序序列的一個語句塊,不同於有一個 或多個yield語句存在的常規語句塊;

7.迭代器不是一種成員,它只是實現函式成員的方式,理解這一點是很重要的,一個通過迭代器實現的成員,可以被其他可能或不可能通過迭代器實現的成員覆蓋和過載;

8.迭代器塊在c#語法中不是獨特的元素,它們在幾個方面受到限制,並且主要作用在函式成員宣告的語義上,它們在語法上只是語句塊而已;

2樓:匿名使用者

檢視msdn。迭代器是 c# 2.0 中的新功能。

迭代器是方法、 get 訪問器或運算子,它使您能夠在 類或 結構中支援 foreach 迭代,而不必實現整個 ienumerable 介面。您只需提供一個迭代器,即可遍歷類中的資料結構。當編譯器檢測到迭代器時,它將自動生成 ienumerable 或 ienumerable介面的 current、movenext 和 dispose 方法。

在武漢北大青鳥魯廣校區學習c#.net開發。

3樓:匿名使用者

c#中的迭代器可以讓你實現foreach訪問某個集合中的所有元素

j**a中iterator的具體作用?

4樓:

你說的沒有錯,iterator有hasnext()方法,返回是否還有沒有訪問的元素,next()則是返回下一個元素,這樣對於需要遍歷的地方,你就不需要知道元素的個數了.

而且iterator支援泛型,如

arraylistlist=new arraylist();

list.add("i");

list.add("love");

list.add("you");

//注意對list修改完後,再取迭代器。不然會引發concurrentmodificationexception

//迭代器

iteratoriter=list.iterator();

while(iter.hasnext())

system.out.println(iter.next()); //next()取得直接是string型別,不需要型別轉換了。(jdk1.5以上)

//arraylist實現了iterable介面,因此可以用for-each迴圈遍歷(jdk1.5以上)

for(string str:list)

system.out.println(str);

-------

你把它理解成資料結構中連結串列的那個next,就是一個線索。把容器中的各個元素穿起來。

你自己的型別也可以實現iterable介面,就可以迭代了。也可以用

foreach迴圈遍歷了。

5樓:

迭代其實可以理解為遍歷!就是一個標準化遍歷各類容器裡面的所有物件的方法類,它是一個很典型的設計模式。

6樓:匿名使用者

統一了集合的新增,和輸出

7樓:匿名使用者

也叫迭代器,能更好的去訪問集合裡面的內容~

8樓:

有時間你去看看iterator介面的源**是怎麼寫的。

python中的迭代器有什麼用

9樓:杞秀榮焉琬

iamlaosong文

我們在用for

...in

...語句迴圈時,in後面跟隨的物件要求是可迭代物件,即可以直接作用於for迴圈的物件統稱為可迭代物件(iterable),如list、tuple、dict、set、str等。

可迭代物件是實現了__iter__()方法的物件,而迭代器(iterator)則是實現了__iter__()和__next__()方法的物件,可以顯示地獲取下一個元素。這種可以被next呼叫並不斷返回下一個值的物件稱為迭代器。迭代器一定是可迭代物件,反過來則不一定成立。

用iter()函式可以把list、dict、str等iterable變成iterator,例如:

bb=[x

forx

inrange(10)]

cc=iter(bb)

cc.next()

迴圈變數的值其實可以看著是一次次用next取值的過程,每取一個值,做一次處理。list等物件用於迴圈實際上可以看著是用iter()方法產生一個迭代器,然後迴圈取值。

生成器(generator)就是一個能返回迭代器的函式,其實就是定義一個迭代演算法,可以理解為一個特殊的迭代器。呼叫這個函式就得到一個迭代器,生成器中的yield相當於一個斷點,執行到此返回一個值後暫停,從而實現next取值。

10樓:匿名使用者

什麼是迭代

可以直接作用於for迴圈的物件統稱為可迭代物件(iterable)。

可以被next()函式呼叫並不斷返回下一個值的物件稱為迭代器(iterator)。

所有的iterable均可以通過內建函式iter()來轉變為iterator。

對迭代器來講,有一個__next ()就夠了。在你使用for 和 in 語句時,程式就會自動呼叫即將被處理的物件的迭代器物件,然後使用它的 next__()方法,直到監測到一個stopiteration異常。

>>> l = [1,2,3] >>> [x**2 for x in l] [1, 4, 9] >>> next(l) traceback (most recent call last): file "", line 1, in typeerror: 'list' object is not an iterator >>> i=iter(l) >>> next(i) 1 >>> next(i) 2 >>> next(i) 3 >>> next(i) traceback (most recent call last):

file "", line 1, in stopiteration

上面例子中,列表l可以被for進行迴圈但是不能被內建函式next()用來查詢下一個值,所以l是iterable。l通過iter進行包裝後設為i,i可以被next()用來查詢下一個值,所以i是iterator。

什麼是迭代器 iterator

c++中迭代器是什麼意思?

函式訊號發生器作用,訊號發生器主要作用於什麼?

函式訊號發生器作用是,能產生某些特定的週期性時間函式波形訊號。訊號發生器一般區分為函式訊號發生器及任意波形發生器,而函式波形發生器在設計上又區分出模擬及數字合成式。數字合成式函式訊號源無論就頻率 幅度乃至訊號的訊雜比均優於模擬,其鎖相環的設計讓輸出訊號不僅是頻率精準。而且相位抖動及頻率漂移均能達到相...

路由器的作用,路由器有什麼作用?

路由器的一個作用是連通不同的網路,另一個作用是選擇資訊傳送的線路。選擇通暢快捷的近路,能大大提高通訊速度,減輕網路系統通訊負荷,節約網路系統資源,提高網路系統暢通率,從而讓網路系統發揮出更大的效益來。從過濾網路流量的角度來看,路由器的作用與交換機和網橋非常相似。但是與工作在網路物理層,從物理上劃分網...

汽油濾清器的作用,燃油濾清器起什麼作用?

在汽車做保養時,我們經常聽到 三濾 即機油濾清器 空氣濾清器和 汽油濾清器,汽油濾清器主要功能是濾除汽油中的雜質。一般來說,很對車主對機油濾清器和空氣濾清器的更換比汽油濾清器頻繁的多。小萬每次保養都是必換機油濾清器 空氣濾清器,但汽油濾清器也是好久都沒有換過。汽油濾清器長期不換會有哪些症狀?會導致什...