Home C&C++函数库 c++ 语法 程序源码 Linux C库

std::

forward_list::sort

公众成员函数  <forward_list>
(1)
  void sort();
2)
template <class Compare>
  void sort (Compare comp);

对容器中的元素进行排序

对forward_list中的元素进行排序,改变它们在容器中的位置。

排序是通过应用 operator< (version(1))或comp (version(2))来比较元素来执行的。 这种比较将产生元素的严格弱排序(即,不考虑自反性的一致传递比较)。

排序结果中相等元素的顺序是稳定的: 即,相等元素保持它们在调用之前的相对顺序。

整个操作不涉及任何元素对象的构造、销毁或复制。元素在容器内移动。

☲  参数


comp
二元谓词,接受与forward_list中包含的值相同类型的两个值.
如果第一个参数按照它定义的严格弱顺序被认为在第二个参数之前, 则返回true,否则返回false。
这应该是一个函数指针或函数对象。

☉  返回值



none

☣  示例



// forward_list::sort
#include <iostream>
#include <forward_list>
#include <functional>

int main ()
{
  std::forward_list<int> mylist = {22, 13, 5, 40, 90, 62, 31};

  mylist.sort();

  std::cout << "default sort (operator<):";
  for (int& x: mylist) std::cout << ' ' << x;
  std::cout << '\n';

  mylist.sort(std::greater<int>());

  std::cout << "sort with std::greater():";
  for (int& x: mylist) std::cout << ' ' << x;
  std::cout << '\n';

  return 0;
}


输出:
default sort (operator<): 5 13 22 31 40 62 90
sort with std::greater(): 90 62 40 31 22 13 5

✥ 复杂度



近似为NlogN,其中N是容器的大小。

☣ 迭代器的有效性



不变

⇄ 数据竞争


容器被修改.
访问所有包含的元素(但不修改)。同时遍历容器是不安全的。

☂ 异常安全性



基本保证:如果抛出异常,则容器处于有效状态。
如果任何元素的比较或移动操作抛出,则抛出。

🍄  另请参阅



forward_list::merge 合并已排序的容器(公众成员函数)
forward_list::reverse 颠倒元素的顺序(公众成员函数)
forward_list::unique 删除重复的值(公众成员函数)

联系我们 免责声明 关于CandCplus 网站地图