C++自帶的sort函數(shù)如何對vector容器元素進行排序
更新時間:2023年10月31日 11:23:18 作者:我啥都會
這篇文章主要介紹了C++自帶的sort函數(shù)如何對vector容器元素進行排序問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
自帶的sort函數(shù)對vector容器元素進行排序
1.包含頭文件
#include<algorithm>
然后using namespace std;
2.假如你定義的vector變量
為vector<Type> num,則如下:
sort(num.begin(), num.end(), sortFun);
然后如果是基本類型假如是int,第三個參數(shù)可以使用系統(tǒng)自帶的less<int>()或者greater<int>()
假如是自定義類型話或者復雜類型就需自己定義比較規(guī)則函數(shù)sortFun
以opencv中的Point2d類型舉例:
#include<iostream>
#include<algorithm>
#include<vector>
#include<opencv2\opencv.hpp>
using namespace std;
using namespace cv;
vector<cv::Point2d> po;
//自定義排序函數(shù)
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;
}運行結果

總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

