一.先看官方文档
二.实现测试用例
这个排序Sort 和 堆排序,不区分大小写。每次排序都差不多一个结果。大小写,他们是一样的。
void AWXTArrayActor::WXSortArray_Sort()
{
TArray<FString> StrArr = { "aa","AA","AB","ab","ABC","BB","VE","AA","CCCC","AD","DDDDDDDA"};
StrArr.Sort(); //按字典
}
void AWXTArrayActor::WXSortArray_HeapSort()
{
TArray<FString> StrArr = { "aa","AA","AB","ab","ABC","BB","VE","AA","CCCC","AD","DDDDDDDA" };
StrArr.HeapSort(); //按字典
}
void AWXTArrayActor::WXSortArray_StableSort() //稳定排序,有排序后的等值元素的相对顺序
{
TArray<FString> StrArr = { "aa","AA","AB","ab","ABC","BB","VE","AA","CCCC","AD","DDDDDDDA" };
StrArr.StableSort(); //按字典
}
但是StableSort能保持相对相对位置正确。
三.二元谓词
二元谓词,其实就是重写定义,动态数组中排列的 比较方式。
范例里是,重定义了Sort 排序里的 比较方式。我们接下来写这样的例子,在走完匿名函数那一行后,容器里会立刻按照规则排序。