gpt4 book ai didi

c++ - vector::begin() 中的迭代器返回

转载 作者:太空宇宙 更新时间:2023-11-04 15:31:44 24 4
gpt4 key购买 nike

我不太明白 vector::begin()实际上返回。

Cplusplus.com 告诉我 vector::begin()返回 vector 的迭代器,这意味着对于 vector<int> v; , 它将给出 0。

但是,当我在 Visual Studio 上进行调试时,观察表向我显示了 v 的第一个元素的值。 .此外,“类型”列表示它是 std::_Vector_iterator。 .

因此,vector::begin() 的实际输出是什么? ?

最佳答案

std::vector::begin 返回一个迭代器。迭代器是指针的泛化——它是一种可用于访问容器元素的类型。每个容器都提供自己的迭代器类型。迭代器的具体表示方式是一个实现细节,作为程序员,您应该只关心它们的接口(interface)(并保证它们对稳定性、有效性等做出的保证。有关更多信息,请参见 suitable documentation)。

不同类型的迭代器支持不同的操作:有的只能自增(只能向前移动),有的也可以自减(向后移动);有些需要一次移动一步,有些可以一次移动多个元素;等等

std::vector 提供的迭代器是随机访问和连续的,因此它们的功能几乎与指针完全相同。

对于一个空的 std::vector,调用 begin() 会给你与调用 end() 返回的完全相同的迭代器>。 end() 总是返回一个特殊的past-the-end 迭代器。该迭代器不可取消引用(它不指向任何元素),它只是作为容器结束的指示符。

关于c++ - vector::begin() 中的迭代器返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50066609/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com