答:vector容器中的begin()是函数接口,它作为函数,被重载了。
typedef T* iterator;
typedef const T* const_iterator;
iterator begin();//括号中有隐含形参*this;
const_iterator begin() const;//形参为const *this,构成函数重载
从下列代码中观察begin()的返回类型有两种。
int main()
{vector<int> iVec;const vector<int> iTec(iVec);//const对象vector<int>::const_iterator const_iter = iTec.begin();//const对象调用begin()函数接口
//重点就在于为什么const对象能调用begin()?因为它调用的是const_iterator begin() constvector<int>::iterator iver = iVec.begin();cout << typeid(const_iter).name() << endl;//打印出迭代器类型cout << typeid(iver).name() << endl;return 0;
}