16.3.3 对矢量可执行的其它操作

STL定义了一些适用于所有容器类的非成员函数

### 另一方面,即使有执行相同任务的非成员函数,STL有时也会也会定义一个成员函数。

### 这是因为对有些操作来说,类的特定算法的效率比通用算法高。

### 但通用算法能够操作两个类型不同的容器的内容

三个代表性的STL函数:

  •  for_each(argument1, argument2, argument3)
    •  argument1和argument2是定义容器中区间的迭代器,argument3是特定的函数对象
    •     for_each(...)函数将被指向的函数应用于容器区间中的各个元素
    •     要求函数不能修改容器的元素
  •  random_shuffle(argument1, argument2)
    •  argument1与argument2是指定区间的迭代器参数
    •     函数使区间中的元素随机排列
    •     使用该函数要求容器类允许随机访问(如vector)
  • sort(argument1, argument2{, argument3})
    •  sort(...)也要求容器类支持随机访问
    •     argument1和argument2是指定区间的迭代器参数
    •     该函数使用为存储在区间中的类型元素定义的<运算符
    •     如果容器元素是用户定义的对象,则要使用sort(...)必须自定义operator<(const <...> &, const <...> &)函数
    • ### argument3可选,它是函数对象参数,函数特征可为(const <...> &, const <...> &),
    • ### 要求返回bool值,用于排序,true表示顺序正确,false则使其顺序颠倒
原文地址:https://www.cnblogs.com/suui90/p/13545598.html