为使类属性算法具有灵活性,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 |