STL中对vector容器中的结构体进行排序

来源:互联网 发布:php软件环境是什么 编辑:程序博客网 时间:2024/05/16 17:21

对于int类型的vector数据排序很简单,如:vector<int> vecTemp;

那么可以采用函数sort(vecTemp.begin(),vecTemp.end());默认从小到大排序。

注:sort函数需要#include <algorithm>头文件,并且using namespace std;

 

对于其他类型的vector数据,需要自己编写排序函数,调用语法:

Sort(vecTemp.begin(),vecTemp.end(),ComFun); ComFun是自己定义的排序函数。规定了什么样的规则是“小于”

例子:

定义结构体

typedef struct N_Elem

{

    long nId;

    double dValue;

}NodeElem;


//比较预测值

boolCompPreValue(NodeElem first, NodeElem second)

{

    if(first.dValue <= second.dValue) //由大到小,若想要由小到大,则改为大于号即可

    {

       return false;

    }

    else

    {

       return true;

    }

}

//排序,由大到小

sort(vecPreResult.begin(),vecPreResult.end(),CompPreValue);

注:sort函数的第一个参数和第二个参数分别指明了需要排序的起始位置(包含)和终止位置(不包含),即[a,b),左闭右开,第三个参数是自定义的比较函数。

原创粉丝点击