2010-11-13 57 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); 
}