C 语言

关注公众号 jb51net

关闭
首页 > 软件编程 > C 语言 > C++自带sort函数对vector容器元素排序

C++自带的sort函数如何对vector容器元素进行排序

作者:我啥都会

这篇文章主要介绍了C++自带的sort函数如何对vector容器元素进行排序问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

自带的sort函数对vector容器元素进行排序

1.包含头文件

#include<algorithm>

然后using namespace std;

2.假如你定义的vector变量

为vector<Type> num,则如下:

sort(num.begin(), num.end(), sortFun);  

然后如果是基本类型假如是int,第三个参数可以使用系统自带的less<int>()或者greater<int>()

假如是自定义类型话或者复杂类型就需自己定义比较规则函数sortFun

以opencv中的Point2d类型举例:

#include<iostream>
#include<algorithm>
#include<vector>
#include<opencv2\opencv.hpp>
using namespace std;
using namespace cv;
vector<cv::Point2d> po;
 
//自定义排序函数  
bool sortFun(const cv::Point2d &p1, const cv::Point2d &p2)
{
    return p1.x < p2.x;//升序排列  
}
 
int main()
{
    Point2d p1(2, 4), p2(4, 3), p3(1, 7), p4(0,4);
    po.push_back(p1);
    po.push_back(p2);
    po.push_back(p3);
    po.push_back(p4);
    cout << "排序前: ";
    for (auto elem : po)
        cout << elem << " ";
 
    sort(po.begin(), po.end(), sortFun);
    cout << endl << "排序后: " ;
    for (auto elem : po)
        cout << elem << " ";
    
    cout << endl;
    system("pause");
    return 0;
}

运行结果

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文