目录
相关文章
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");
}