• <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>

    什么是向量迭代器(Vector Iterator)?

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

    你可能感興趣的文章

    相關問題

    0 條評論

    請先 登錄 后評論
    admin
    admin

    0 篇文章

    作家榜 ?

    1. xiaonan123 189 文章
    2. 湯依妹兒 97 文章
    3. luogf229 46 文章
    4. jy02406749 45 文章
    5. 小凡 34 文章
    6. Daisy萌 32 文章
    7. 我的QQ3117863681 24 文章
    8. 華志健 23 文章

    推薦文章

    聯系我們:uytrv@hotmail.com 問答工具
  • <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>
    久久久久精品国产麻豆