索引和迭代器之间的区别是?

时间:2016-06-09 15:59:31

标签: c++ indexing iterator containers member-functions

index是否是一个可以返回容器中元素值的成员函数,而迭代器是一个可以访问,移动和移动容器的值?

1 个答案:

答案 0 :(得分:1)

索引(或键)用于查找容器中的数据。最简单的情况是数组的整数索引,但像std::map这样的容器几乎可以有任何类型的索引。

迭代器是一个表示容器中位置的类。它们可能是通过访问带有索引/键的容器获得的,例如iterator std::map::find( const Key& key )

迭代器和索引实际上是相切的相关概念。索引单独不允许您以任何方式访问容器的数据,您必须从容器调用函数,如下标运算符([])或find()

然而,即使您无法再访问原始容器,也可以使用*->“取消引用”迭代器。有时迭代器在没有相关容器的情况下在C ++中传递。它们也可以递增和/或递减(取决于容器)。

许多人互换使用“密钥”和“索引”这两个词,包括我。根据具体情况,这可能不完全合适,但它们通常是一个等同的概念。