美文网首页
Android NDK开发:C++中set集合中元素的排序

Android NDK开发:C++中set集合中元素的排序

作者: itfitness | 来源:发表于2021-03-28 20:16 被阅读0次

目录

相关文章

Android NDK开发:java调用dll动态链接库方法
Android NDK开发:JNIEnv的原理
Android NDK开发:C修改Java的属性
Android NDK开发:C调用Java层方法
Android NDK开发:C创建Java层的对象
Android NDK开发:C操作Java层的数组
Android NDK开发:Native层的变量管理及静态缓存
Android NDK开发:Native层的异常处理
Android NDK开发:结构体的偏移量及所占大小
Android NDK开发:运算符重载与友元函数
Android NDK开发:用C++手写一个简单的ArrayList
Android NDK开发:Native层实现数组的拷贝
Android NDK开发:C++捕捉异常并将异常抛给Java层

代码展示

C++中Set集合的排序主要就是创建一个结构体,内部重载一个用来排序的函数,就跟Java中对List中的对象元素排序类似,代码如下:

#include <set>
#include<stdlib.h>
#include<iostream>
using namespace std;
struct CompareInt {
    //重载排序函数
    bool operator()(const int& v1, const int& v2) const
    {
        return v1 < v2;
    }
};
class Student {
public:
    int age;
    string name;
    Student(int age,string name) {
        this->age = age;
        this->name = name;
    }
};
struct CompareObj {
    //重载排序函数
    bool operator()(const Student& v1, const Student& v2) const
    {
        return v1.age > v2.age;
    }
};
void main() {
    //int类型排序
    set<int, CompareInt> s_int;
    s_int.insert(10);
    s_int.insert(16);
    s_int.insert(9);
    s_int.insert(20);
    cout << "int类型排序" << endl;
    for (set<int, CompareInt>::iterator it = s_int.begin(); it != s_int.end(); it ++) {
        cout << *it << endl;
    }

    //对象类型排序
    set<Student, CompareObj> s_obj;
    s_obj.insert(Student(10,"张三"));
    s_obj.insert(Student(9, "李四"));
    s_obj.insert(Student(20, "王五"));
    s_obj.insert(Student(16, "刘能"));
    cout << "对象类型排序" << endl;
    for (set<Student, CompareObj>::iterator it = s_obj.begin(); it != s_obj.end(); it++) {
        cout << it->name << "," << it->age << endl;
    }

    system("pause");
}

运行结果

相关文章

网友评论

      本文标题:Android NDK开发:C++中set集合中元素的排序

      本文链接:https://www.haomeiwen.com/subject/hwkmhltx.html