2010-11-13 80 views

回答

9

它的返回型基于是否载体本身正在通过const引用(或指针)访问或没有。此外,iterator可以隐式转换为const_iterator,这就是为什么这样的工作原因:std::vector<T> v; std::vector<T>::const_iterator it = v.begin();

5

begin()end()超载对*this的常量性,是这样的:

iterator begin(); 
const_iterator begin() const; 

iterator end(); 
const_iterator end() const; 
3

他们超载的成员函数的常量性:

struct Foo 
{ 
    int bar() { return 1; } 
    int bar() const { return 2; } 
}; 

int main() 
{ 
    Foo a; 
    const Foo b; 
    assert(a.bar() == 1); 
    assert(b.bar() == 2); 
}