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

向量迭代器是一种计算机语言结构,它允许程序读取包含在称为向量的专门集合中的数据值。向量是用来分组相关数据值的对象,类似于数组和列表。许多不同的计算机语言,尤其是Java和C,包含向量及其相关的迭代器。每种语言对迭...

向量迭代器是一种计算机语言结构,它允许程序读取包含在称为向量的专门集合中的数据值。向量是用来分组相关数据值的对象,类似于数组和列表。许多不同的计算机语言,尤其是Java和C,包含向量及其相关的迭代器。每种语言对迭代器使用不同的语法,但所有语言的底层机制是对向量组中每个可能成员的单独访问。许多计算机语言,如C,包含向量及其相关的迭代器。使用迭代器在向量中移动通常是称为遍历或迭代。向量迭代器也可用于显式标识向量集合中的特定对象。执行此标识时,该对象通过其在向量中的索引进行标识,不是由对象本身的任何特性决定的。如果迭代器被取消引用,就可以对对象执行操作,授予程序显式访问对象而不是向量的权限。向量迭代器很少有机会遇到迭代数组时可能发生的越界错误。虽然向量是本质上是美化数组在解构时,向量几乎总是有某种类型的边界检查,以确保向量迭代器保持在正确的索引上。当遍历向量时,迭代器,如果调用正确,总是从向量的开始处开始,正好在向量的结尾处结束。在某些上下文中,显式地指定不正确的索引仍然是可能的,但是向量的内置边界检查(将其转换为其迭代器)可以防止越界溢出问题。在C中,当迭代器遍历向量时,可以修改向量,但是Java明确禁止这种情况发生在这种情况下,Java的操作要安全得多,因为当迭代器在向量上移动时,更改向量可能会导致迭代器无意中读取向量之外的内容。在迭代时试图在向量中添加或删除项是特别危险的,特别是如果向量必须覆盖的起始和结束索引是硬编码的。向量迭代器没有用来处理向量的突然变化,并且向量在遍历时是相对静态的。向量迭代器可以是隐式的,也可以是显式的,无论是语法形式还是语法形式,都可以平稳地进行遍历为了提高效率,一个向量迭代器可以被一个非常大的向量减慢。在这种情况下,对向量的结束索引进行硬编码可以加快遍历速度。这个问题不会发生在小向量上,所以硬编码结束索引不会引起任何明显的加速。对结束索引进行硬编码会增加溢出的风险,所以总的来说,应该谨慎行事

发表于 2020-08-06 15:18

阅读 ( 148 )

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值