gpt4 book ai didi

c++ - std::vector::front() 和 begin() 之间的区别

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:53:38 27 4
gpt4 key购买 nike

关于 vector 的帮助说 front()

Returns a reference to the first element in the vector container. Unlike member vector::begin, which returns an iterator to this same element, this > function returns a direct reference.

关于 vector 的帮助说 begin()

Returns an iterator referring to the first element in the vector container. Notice that unlike member vector::front, which returns a reference to the first element, > this function returns a random access iterator.

这段代码输出:

char arr[] = { 'A', 'B', 'C' };
vector<char> vec(arr, arr+sizeof(arr));
cout << "address of vec.front() " << (void*)&vec.front() << endl;
cout << "address of vec.begin() " << (void*)&vec.begin() << endl;

vec.front() 00401F90 的地址vec.begin() 0030F494

的地址

我不明白“直接引用”是什么意思? begin() 不是随机访问迭代器 只是一个指针吗?

有人可以指出区别吗?

最佳答案

根据 The C++ Programming Language 中的 Stroustrup,第 16.3.3 节;将 front() 视为第一个元素,将 begin() 视为指向第一个元素的指针。

关于c++ - std::vector::front() 和 begin() 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12841079/

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