c++ 容器排序

#include <algorithm>
#include <functional>
#include <array>
#include <iostream>
using namespace std;
int main()
{
    array<int, 10> s = {5, 7, 4, 2, 8, 6, 1, 9, 0, 3}; 

    // 用默认的 operator< 排序
    sort(s.begin(), s.end());//升序
    for (auto a : s) {
        cout << a << " ";
    }
    cout << ‘\n‘;

    // 用标准库比较函数对象排序
    sort(s.begin(), s.end(), greater<int>());//降序
    for (auto a : s) {
        cout << a << " ";
    }
    cout << ‘\n‘;

    // 用自定义函数对象排序
    struct {
        bool operator()(int a, int b) const
        {
            return a < b;
        }
    } customLess;
    sort(s.begin(), s.end(), customLess);//升序
    for (auto a : s) {
        cout << a << " ";
    }
    cout << ‘\n‘;

    // 用 lambda 表达式排序
    sort(s.begin(), s.end(), [](int a, int b) {
        return b < a;
    });//降序
    for (auto a : s) {
        cout << a << " ";
    }
    cout << ‘\n‘;
}

输出

0 1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 1 0
0 1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 1 0

原文地址:https://www.cnblogs.com/sea-stream/p/10111781.html

时间: 2024-10-31 14:31:02

c++ 容器排序的相关文章

Java用vector容器排序

Java用vector容器排序 /** * 功能:定义一个Student数组,其中保存学生的基本信息,包括姓名,学号,性别,还有三门课的成绩 * 和课程对应的学分,计算出学分积,降序排序 * 时间:2014年6月4日16:33:24 * 作者:cutter_point */ package com.lesson4; import java.util.*; public class Demo4_10 { public static void main(String [] args) { //吧成绩

Set容器排序

最近项目在进行实时排序时需要有个算法能够快速的进行排序,进行一番测试及考量.现采用set容器,然后存放结构体的方式. 结构体如下所示: 1 struct MatchData 2 { 3 uint32 m_score; 4 int64 m_userid; 5 uint32 m_medal; 6 string m_name; 7 8 MatchData() 9 { 10 11 this->m_score = 0; 12 this->m_userid = 0; 13 this->m_medal

java自定义容器排序的两种方法

首先说一下排序的返回值的含义.对于参与比较的两个Object,o1和o2,如果函数的返回值为正值,把o1排在o2后面:返回值为负值,把o1排在o2前面.如果返回值是0,按照容器之前的顺序排列.在compareTo中,this相当于o1,传入的Object相当于o2 第一种方法:对于要排序的类实现Comparable接口 package sort; import java.util.ArrayList; import java.util.Collections; import java.util.

list?容器?排序函数.xml

pre{ line-height:1; color:#f0caa6; background-color:#2d161d; font-size:16px;}.sysFunc{color:#e54ae9;font-style:italic;font-weight:bold;} .selfFuc{color:#f1f9be;} .bool{color:#69305e;} .condition{color:#628698;font-weight:bold;} .key{color:#e336b6;} .

stl std::map容器排序及使用注意事项 .

01.#include "stdafx.h" 02.#include <map> 03.#include <iostream> 04. 05.int _tmain(int argc, _TCHAR* argv[]) 06.{ 07. /** 08. * map中的每个元素都是一个pair类型 09. * 对于插入其中的元素都会默认按键值升序排列好 10. */ 11. 12. std::map<int, int> m; 13. m.insert(st

容器排序

1 //用于sort中的比较函数,定义为ServiceImpl的静态成员函数,比较Book对象中的m_loan_times成员, 降序排序,同时为了能访问Book类中的私有成员,在Book类中声明为友元函数 2 bool ServiceImpl::big_borrow(Book b1,Book b2) 3 { 4 if(b1.m_loan_times > b2.m_loan_times) 5 { 6 return true; 7 } 8 return false; 9 } 10 11 12 //

C++11 STL容器 排序

1 struct temp{ int __iValue; int __iKey; }; 2 temp __Stru1 = { 100,100}; 3 temp __Stru2 = { 2,-10 }; 4 temp __Stru3 = { 200,1 }; 5 temp __Stru4 = { 600,2 }; 6 7 std::list<temp*> test_list; 8 test_list.push_back(&__Stru1); 9 test_list.push_back(&

中国电信翼支付2014编程大赛决赛-一种排序 个人解题过程

首先需要表明的是我在时限内想到这个解法,但是这个解法被判错,而我也想不到反例.赛后咨询举办方的时候,他们表示过几天会发测试数据给我们.所以今天就先把思路和代码先放上来,过几天收到数据再看看到底哪里错了. 如果有读者想到相应的反例,希望可以给我留言,谢谢. 题目详情(只限Java) 给定一串整数,你只能进行两种操作:任选一个整数放到这串数之前,或者这串之后.所有的整数都不相等. 问把这串整数变为由小到大的排好序最少需要的操作次数. 输入格式: 多组数据,每组数据1行,包含若干个空格分隔的非负整数,

C++ 容器一些细节

参考:http://www.cnblogs.com/answeryi/archive/2011/12/16/2289811.html: 目录 ==================================================== 第一章 容器 第二章 Vector和string 第三章 关联容器 第四章 迭代器 第五章 算法 第六章 函数 第七章 在程序中使用STL ==================================================== 第1章