哈希桶底层中用iterator初始化const_iterator迭代器

template
struct Iterator
{

    typedef Iterator Self;
    typedef Iteratoriterator;
    Iterator(T a)
        :_a(a)
    {
        printf("构造函数");
    }
    Iterator( iterator& it)
        :_a(it._a)
    {
        printf("拷贝构造函数");
    }
    T _a=0;
};
template
class A
{public:
    typedef Iterator iterator;
    typedef Iterator const_iterator;
    A(T a)
        :_a(a)
    {

    }
    const_iterator func()
    {
        const_iterator cit(_a);
        return cit;
    }
    iterator _a;
};
void test()
{
    // 表示普通迭代器

    A a(1);
    auto const_it = a.func();
}

class 中的 const method 相当于 const this ,在函数中不能修改变量,调用的也只能是类的const的方法。
const iterator 是用于给const对象调用的,而且调用的是底层的类的对应的const的方法。
const vector v1 v1上的各个值node*地址不变就好,node*指向的空间的变量改变不影响

你可能感兴趣的:(波奇学c,c++)