STL pair库仿写

stl_pair.h

这是第一篇,所以先写个简单的吧,先写个pair。

template<typename T1,typename T2>
struct pair{
    T1 first;
    T2 second;
};

这是基本的定义,对吧。现在我们加上判断相等运算符。

template<typename T1,typename T2>
bool operator==(const pair<T1,T2>& mem,const pair<T1,T2>& mem2)
{
    return mem.first==mem2.first&&mem.second==mem2.second;
}

我们的pair要支持列表初识化,所以我们还要编写构造函数。

template<typename T1,typename T2>
struct pair{
    T1 first;
    T2 second;
    pair()=default;
    pair(const T1& p,const T1& q):first(p),second(q){ }
    pair(const pair& m)
    {
        first=m.first;
        second=m.second;
    }
    pair(pair&& n)=default;
    pair operator=(const pair&);
};

拷贝赋值运算符

拷贝赋值运算符也很简单,只要分别赋值就行了:

template<typename T1,typename T2>
pair pair::operator=(const pair& r)
{
    r.first=this->first;
    r.second=this->second;
    return *this;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值