标准库utility中rel_pos替换操作符的用法

3 篇文章 0 订阅
// operators.cpp : 定义控制台应用程序的入口点。
//made by davidsu33
//2014-6-8 18:40


#include "stdafx.h"
#include <utility>
#include <cassert>


using namespace std;
//utility中提供的rel_ops,操作符之间的转换
//通过实现<和==操作来完成> ! >= <=的操作


struct Point
{
int x,y;
};


bool operator==(const Point& l, const Point& r)
{
return (l.x==r.x) && (l.y==r.y);
}


bool operator<(const Point& l, const Point& r)
{
if (l.x != r.x)
{
return l.x < r.x;
}


return l.y < r.y;
}


void use_rel_ops()
{
//上述对于Point的操作仅实现了==操作符和<操作符
using namespace std::rel_ops;//****必须要加上该命名空间,否则编译不过


Point p1, p2;
p1.x = 2, p1.y = 3, p2.x=2, p2.y=3;
assert(p1 >= p2);
assert(p1 <= p2);


p1.x = 4;
assert(p1 > p2);


assert(p1 != p2);


p1.x = p2.x;
assert(p1 == p2);
}


int _tmain(int argc, _TCHAR* argv[])
{
use_rel_ops();
return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值