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

template<class T,class Ref,class Ptr>
struct Iterator
{

    typedef Iterator<T,Ref,Ptr> Self;
    typedef Iterator<T, T*, T&>iterator;
    Iterator(T a)
        :_a(a)
    {
        printf("构造函数");
    }
    Iterator( iterator& it)
        :_a(it._a)
    {
        printf("拷贝构造函数");
    }
    T _a=0;
};
template<class T>
class A
{public:
    typedef Iterator<T,T*,T&> iterator;
    typedef Iterator<T,const T*,const T&> const_iterator;
    A(T a)
        :_a(a)
    {

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值