为使类属性算法具有灵活性,STL常用函数重载机制为算法提供两种形式,算法的第一种形式使用的是常规操作来实现目标。在第二种形式中,算法可以根据用户指定的准则对元素进行处理。这种准则是通过函数对象来传递的。函数对象世纪上是重载了operator()的类模版。
STL提供了许多函数对象,这些对象包含在头文件<functional>中。
| 函数对象 |
说明 |
| 算术函数对象: |
| plus<T> |
x+y |
| minus<T> |
x-y |
| multiplies<T> |
x*y |
| divides<T> |
x/y |
| modulus<T> |
x%y |
| negate<T> |
-x |
| 关系函数对象: |
| equal_to<T> |
x==y |
| not_equal_to<T> |
x!=y |
| grater<T> |
x>y |
| greater_equal<T> |
x>=y |
| less<T> |
x<y |
| less_equal<T> |
x<=y |
| 逻辑函数对象: |
|
| logical_not<T> |
!x |
| logical_and<T> |
x&y |
| logical_or<T> |
x|y |