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;
}