向量迭代器是一種計算機語言結構,它允許程序讀取包含在稱為向量的專門集合中的數據值。向量是用來分組相關數據值的對象,類似于數組和列表。許多不同的計算機語言,尤其是Java和C,包含向量及其相關的迭代器。每種語言對迭...
向量迭代器是一種計算機語言結構,它允許程序讀取包含在稱為向量的專門集合中的數據值。向量是用來分組相關數據值的對象,類似于數組和列表。許多不同的計算機語言,尤其是Java和C,包含向量及其相關的迭代器。每種語言對迭代器使用不同的語法,但所有語言的底層機制是對向量組中每個可能成員的單獨訪問。許多計算機語言,如C,包含向量及其相關的迭代器。使用迭代器在向量中移動通常是稱為遍歷或迭代。向量迭代器也可用于顯式標識向量集合中的特定對象。執行此標識時,該對象通過其在向量中的索引進行標識,不是由對象本身的任何特性決定的。如果迭代器被取消引用,就可以對對象執行操作,授予程序顯式訪問對象而不是向量的權限。向量迭代器很少有機會遇到迭代數組時可能發生的越界錯誤。雖然向量是本質上是美化數組在解構時,向量幾乎總是有某種類型的邊界檢查,以確保向量迭代器保持在正確的索引上。當遍歷向量時,迭代器,如果調用正確,總是從向量的開始處開始,正好在向量的結尾處結束。在某些上下文中,顯式地指定不正確的索引仍然是可能的,但是向量的內置邊界檢查(將其轉換為其迭代器)可以防止越界溢出問題。在C中,當迭代器遍歷向量時,可以修改向量,但是Java明確禁止這種情況發生在這種情況下,Java的操作要安全得多,因為當迭代器在向量上移動時,更改向量可能會導致迭代器無意中讀取向量之外的內容。在迭代時試圖在向量中添加或刪除項是特別危險的,特別是如果向量必須覆蓋的起始和結束索引是硬編碼的。向量迭代器沒有用來處理向量的突然變化,并且向量在遍歷時是相對靜態的。向量迭代器可以是隱式的,也可以是顯式的,無論是語法形式還是語法形式,都可以平穩地進行遍歷為了提高效率,一個向量迭代器可以被一個非常大的向量減慢。在這種情況下,對向量的結束索引進行硬編碼可以加快遍歷速度。這個問題不會發生在小向量上,所以硬編碼結束索引不會引起任何明顯的加速。對結束索引進行硬編碼會增加溢出的風險,所以總的來說,應該謹慎行事
-
發表于 2020-08-06 15:18
- 閱讀 ( 812 )
- 分類:電腦網絡