std::rel_ops::operator!=,>,<=,>=
来自cppreference.com
|
|
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
| Defined in header <utility>
|
||
| template< class T > bool operator!=( const T& lhs, const T& rhs ); |
(1) | |
| template< class T > bool operator>( const T& lhs, const T& rhs ); |
(2) | |
| template< class T > bool operator<=( const T& lhs, const T& rhs ); |
(3) | |
| template< class T > bool operator>=( const T& lhs, const T& rhs ); |
(4) | |
给定的一个用户定义的operator==和operator<类型
1) T的对象,实现其它比较运算符通常的语义.Original:
Given a user-defined operator== and operator< for objects of type
T, implements the usual semantics of other comparison operators.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
实现operator!=的operator==.
2) Original:
Implements operator!= in terms of operator==.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
实现operator>的operator<.
3) Original:
Implements operator> in terms of operator<.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
实现operator<=的operator<.
4) Original:
Implements operator<= in terms of operator<.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
实现operator>=的operator<.
Original:
Implements operator>= in terms of operator<.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
目录 |
[编辑] 参数
| lhs | - | 左边的参数
Original: left-hand argument The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
| rhs | - | 右手的说法
Original: right-hand argument The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
[编辑] 返回值
1)返回true
2) lhs是“不等于”rhs.Original:
Returns true if
lhs is not equal to rhs.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
如果true返回
3) lhs是“更大的”比rhs.Original:
Returns true if
lhs is greater than rhs.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
返回true
4) lhs是“小于或等于”rhs.Original:
Returns true if
lhs is less or equal to rhs.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
返回true
lhs是“大于或等于”rhs.Original:
Returns true if
lhs is greater or equal to rhs.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[编辑] 可能的实现
| First version |
|---|
namespace rel_ops { template< class T > bool operator!=( const T& lhs, const T& rhs ) { return !(lhs == rhs); } } |
| Second version |
namespace rel_ops { template< class T > bool operator>( const T& lhs, const T& rhs ) { return rhs < lhs; } } |
| Third version |
namespace rel_ops { template< class T > bool operator<=( const T& lhs, const T& rhs ) { return !(rhs < lhs);; } } |
| Fourth version |
namespace rel_ops { template< class T > bool operator>=( const T& lhs, const T& rhs ) { return !(lhs < rhs); } } |
[编辑] 为例
#include <iostream> #include <utility> struct Foo { int n; }; bool operator==(const Foo& lhs, const Foo& rhs) { return lhs.n == rhs.n; } bool operator<(const Foo& lhs, const Foo& rhs) { return lhs.n < rhs.n; } int main() { Foo f1 = {1}; Foo f2 = {2}; using namespace std::rel_ops; std::cout << std::boolalpha; std::cout << "not equal? : " << (bool) (f1 != f2) << '\n'; std::cout << "greater? : " << (bool) (f1 > f2) << '\n'; std::cout << "less equal? : " << (bool) (f1 <= f2) << '\n'; std::cout << "greater equal? : " << (bool) (f1 >= f2) << '\n'; }
Output:
not equal? : true greater? : false less equal? : true greater equal? : false