STL如何返回具有相同功能的2个迭代器?

jma*_*erx 1 c++

我注意到vector.begin()将返回一个const迭代器,或者基于左边给出的迭代器.这样的事情是如何实现的,因为赋予函数的参数是相同的.

谢谢

Oli*_*rth 9

它的返回类型是基于是否通过const引用(或指针)访问向量本身.此外,一个iterator可以隐式转换为a const_iterator,这就是为什么这样的工作:std::vector<T> v; std::vector<T>::const_iterator it = v.begin();.


fre*_*low 5

begin()并且end()在const-ness上重载*this,例如:

iterator begin();
const_iterator begin() const;

iterator end();
const_iterator end() const;
Run Code Online (Sandbox Code Playgroud)