std::sort的详细用法

 1 #include <algorithm>
 2 #include <functional>
 3 #include <array>
 4 #include <iostream>
 5
 6 int main()
 7 {
 8     std::array<int, 10> s = { 5, 7, 4, 2, 8, 6, 1, 9, 0, 3 };
 9
10     // sort using the default operator<
11     std::sort(s.begin(), s.end());
12     for (auto a : s) {
13         std::cout << a << " ";
14     }
15     std::cout << ‘\n‘;
16
17     // sort using a standard library compare function object
18     std::sort(s.begin(), s.end(), std::greater<int>());
19     for (auto a : s) {
20         std::cout << a << " ";
21     }
22     std::cout << ‘\n‘;
23
24     // sort using a custom function object
25     struct {
26         bool operator()(int a, int b) const
27         {
28             return a < b;
29         }
30     } customLess;
31     std::sort(s.begin(), s.end(), customLess);
32     for (auto a : s) {
33         std::cout << a << " ";
34     }
35     std::cout << ‘\n‘;
36
37     // sort using a lambda expression
38     std::sort(s.begin(), s.end(), [](int a, int b) {
39         return b < a;
40     });
41     for (auto a : s) {
42         std::cout << a << " ";
43     }
44     std::cout << ‘\n‘;
45 }
时间: 2024-08-28 17:54:39

std::sort的详细用法的相关文章

map的详细用法 (转

[cpp] view plaincopy map的详细用法: map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能 力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道.这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严 格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有序的好处. 下面举例说明什么是一对

AWK详细用法

awk非常的优秀,运行效率高,而且代码简单,对格式化的文本处理能力超强.基本上grep和sed能干的活awk全部都能干,而且干得更好. 先来一个很爽的例子:文件a,统计文件a的第一列中是浮点数的行的浮点数的平均值.用awk来实现只需要一句话就可以搞定(当然,这个东东用python也可以很轻松的实现,只是无论如何都得新建一个文件:别妄想用bash shell来做,那可是浮点数!!!)$cat a1.021 331#.ll   442.53 6ss    7awk 'BEGIN{total = 0;

将三维空间的点按照座标排序(兼谈为std::sort写compare function的注意事项)

最近碰到这样一个问题:我们从文件里读入了一组三维空间的点,其中有些点的X,Y,Z座标只存在微小的差别,远小于我们后续数据处理的精度,可以认为它们是重复的.所以我们要把这些重复的点去掉.因为数据量不大,这里不准备使用划分包围盒或者建立k-d tree这样的重型武器,我们简单的把点按照其三维坐标进行排序就好. 我们准备使用STL的std::sort来做这个排序.它要求提供一个符合如下签名的比较函数: bool cmp(const Type1 &a, const Type2 &b) 怎么样写这个

std::sort源码剖析

文章参考:源码 这篇文章在一个偶然的机会看到,我原先也是知道sort函数效率高,但终究没有去了解原因,读了这篇文章更加钦佩C++大师积年累月智慧的结晶和对效率的极致追求,看到很多地方不禁暗暗称奇.也还是感慨原文作者对技术的追求和细致的讲解,下面的内容大多来自作者的文章,其中加入了自己的理解,也不枉费大半个下午的时间. 从事程序设计行业的朋友一定对排序不陌生,它从我们刚刚接触数据结构课程开始便伴随我们左右,是需要掌握的重要技能.任何一本数据结构的教科书一定会介绍各种各样的排序算法,比如最简单的冒泡

C++ sort函数的用法

C++ sort函数的用法 STL有个排序函数sort,可以直接对数组和向量排序. 一.功能:给定区间所有元素进行排序 二.头文件: #include <algorithm> 三.sort函数的参数:可以传两个参数或三个参数. 第一个参数:要排序的区间首地址, 第二个参数:区间尾地址的下一地址.也就是说,排序的区间是[a,b). 例如:数组int a[100],sort(a,a+100)是对从a[0]到a[99]的元素进行排序,默认的排序方式是升序. 对向量v排序:sort(v.begin()

C++sort()函数的用法

C++sort()函数的用法 (一)为什么要用c++标准库里的排序函数 Sort()函数是c++一种排序方法之一,学会了这种方法也打消我学习c++以来使用的冒泡排序和选择排序所带来的执行效率不高的问题!因为它使用的排序方法是类似于快排的方法,时间复杂度为n*log2(n),执行效率较高! (二)c++标准库里的排序函数的使用方法 I)Sort函数包含在头文件为#include<algorithm>的c++标准库中,调用标准库里的排序方法可以不必知道其内部是如何实现的,只要出现我们想要的结果即可

Display:Block 详细用法

根据CSS规范的规定,每一个网页元素都有一个display属性,用于确定该元素的类型,每一个元素都有默认的display属性值,比如div元素,它的默认display属性值为"block",成为"块级"元素(block-level):而span元素的默认display属性值为"inline",称为"行内"元素. 块级元素: 动占据一定矩形空间,可以通过设置高度.宽度.内外边距等属性,来调整的这个矩形的样子: 行内元素: 自己的

DOM Style样式对象的详细用法

DOM Style样式对象的详细用法 HTML Style样式比较复杂,相应访问.修改方法也有所差异.参考相关资料,整理如下. 典型Html文件如下,有三种定义方式. <head>     <style type="text/css">                /* 内部样式 */       h3 {color:green;}     </style>             <!-- 外部样式 style.css -->    

std::sort 学习:一种递归分治方法

// std::sort 学习:一种递归分治方法 今天看了看 stl 的 std::sort 的代码,众所周知,这个函数是在快速排序递归太深的时候使用堆排序防止过度退化,但是今天说的不是这个.我们只看快速排序的部分. 我们一般实现快速排序大概是这样的(本王随意写了个用下标当参数的排序函数,领会意思即可). void quick_sort(int first, int last) // 某个数组的 [first, last) {  if ((last - first) > 1) {  int mi