zoukankan      html  css  js  c++  java
  • 结构体排序的两种方法

    一、自定义比较函数

    #include <iostream>
    #include <algorithm>
    using namespace std;
    struct Node{
    	string name;
    	int age;
    };
    
    bool cmp(const Node a, const Node b)
    {
    	return a.age < b.age; // < 就是前面的小于后面的,即从小到大排序 
    }
    
    int main()
    {
    	struct Node nodes[3];
    	nodes[0].name = "zhang";
    	nodes[0].age = 18;
    	
    	nodes[1].name = "wang";
    	nodes[1].age = 20;
    	
    	nodes[2].name = "li";
    	nodes[2].age = 19;
    	
    	
    	sort(nodes, nodes + 3, cmp);
    	
    	
    	for(int i = 0; i < 3; ++i) {
    		cout << nodes[i].age << endl;
    	}
    } 
    

    二、结构体内嵌比较函数

    #include <iostream>
    #include <algorithm>
    using namespace std;
    struct Node{
    	string name;
    	int age;
    	
    	// 这里是cpp的运算符重载,重载了 <  
    	bool operator < (const Node& a) const
    	{
    		return age < a.age;  // < 就是从小到大排序 
    	} 
    };
    
    
    int main()
    {
    	struct Node nodes[3];
    	nodes[0].name = "zhang";
    	nodes[0].age = 18;
    	
    	nodes[1].name = "wang";
    	nodes[1].age = 20;
    	
    	
    	nodes[2].name = "li";
    	nodes[2].age = 19;
    	
    	
    	sort(nodes, nodes + 3);
    	
    	
    	for(int i = 0; i < 3; ++i) {
    		cout << nodes[i].age << endl;
    	}
    } 
    
  • 相关阅读:
    你写的单例真的安全吗?
    CountDownLatch&&CyclicBarrier
    初步认识AQS
    Atomic底层原理
    volatile关键字
    Linux常用服务类相关命令
    线程池
    由浅入深TheradLocal
    synchronized关键字
    .net 中dapper实现事务的三种方式总结
  • 原文地址:https://www.cnblogs.com/VanHa0101/p/14317765.html
Copyright © 2011-2022 走看看