使用STL库sort函数对vector进行排序,vector的内容为对象的指针,而不是对象。

代码如下

 #include <stdio.h>
#include <vector>
#include <algorithm> using namespace std; class Elm
{
public:
int m_iSortProof; private:
int __m_iValue;
static int __m_iCnt; public:
Elm();
int getValue(int iX);
void printElm();
}; int Elm::__m_iCnt = ; Elm::Elm()
{
__m_iCnt ++;
__m_iValue = __m_iCnt;
m_iSortProof = getValue(__m_iCnt);
} /* (x-10.3)^2 + 0.6*/
int Elm::getValue(int iX)
{
float fX = (float)iX - 10.3; float fY = fX * fX + 0.6; return (int)fY;
} void Elm::printElm()
{
printf("value : %3d, proof : %3d\n", __m_iValue, m_iSortProof);
} /*z -> a*/
bool compare(const Elm * a, const Elm * b)
{
return a->m_iSortProof > b->m_iSortProof;
} int main(int argc, char * argv[])
{
vector<Elm *> vecpList;
int i = ;
for(i = ; i < ; i++)
{
Elm * pElm = new Elm;
vecpList.push_back(pElm);
}
for(vector<Elm *>::iterator pE = vecpList.begin(); pE != vecpList.end(); pE++)
{
(*pE)->printElm();
}
/*使用sort对vector进行排序*/
sort(vecpList.begin(), vecpList.end(), compare);
printf("\033[0;34m----------------sorted----------------\033[0m\n");
for(vector<Elm *>::iterator pE = vecpList.begin(); pE != vecpList.end(); pE++)
{
(*pE)->printElm();
} return ;
}

运行结果如下

1、排序前

value :   , proof :
value : , proof :
value : , proof :
value : , proof :
value : , proof :
value : , proof :
value : , proof :
value : , proof :
value : , proof :
value : , proof :
value : , proof :
value : , proof :
value : , proof :
value : , proof :
value : , proof :
value : , proof :
value : , proof :
value : , proof :
value : , proof :
value : , proof :

排序后

value :  , proof :
value : , proof :
value : , proof :
value : , proof :
value : , proof :
value : , proof :
value : , proof :
value : , proof :
value : , proof :
value : , proof :
value : , proof :
value : , proof :
value : , proof :
value : , proof :
value : , proof :
value : , proof :
value : , proof :
value : , proof :
value : , proof :
value : , proof :

使用STL库sort函数对vector进行排序的更多相关文章

  1. STL的sort函数是使用什么排序算法的?

    先占坑,大概就是主要快速排序+插入排序+堆排序的合体

  2. sort函数用于vector向量的排序

    参考资料: 关于C++中vector和set使用sort方法进行排序 作者注:这篇文章写得相当全面,包括对vector和set中不同数据类型(包括结构体)的排序,还有一些还没看懂--特作此摘录,供当前 ...

  3. <algorithm>里的sort函数对结构体排序

    题目描述 每天第一个到机房的人要把门打开,最后一个离开的人要把门关好.现有一堆杂乱的机房签到.签离记录,请根据记录找出当天开门和关门的人. 输入描述: 每天的记录在第一行给出记录的条目数M (M &g ...

  4. 『嗨威说』算法设计与分析 - STL中Sort函数的实现原理初探

    本文索引目录: 一.对Sort算法实现的个人阅读体会 二.Sort算法使用的三个排序算法的优点介绍 2.1 插入排序的优缺点 2.2 堆排序的优缺点 2.3 快速排序的优缺点 2.4 新的结合排序—— ...

  5. STL之sort函数的用法

    说明:本文仅供学习交流,转载请标明出处,欢迎转载! STL封装了一个排序算法,该算法相应的头文件为#include<algorithm>,我们能够依据须要对一个数组进行排序或者降序. so ...

  6. STL 之 sort 函数使用方法

    关于Sort Sort函数是C++ STL(Standard Template Library / 标准函数库) <algorithm>头文件中的一个排序函数,作用是将一系列数进行排序,因 ...

  7. C++中STL的sort函数

    简单介绍C++ sort函数 这个函数需要STL算法头文件 #include <algorithm> using namespace std; 这个sort( , , )可以带两个参数也可 ...

  8. sort函数的用法(C++排序库函数的调用)

    对数组进行排序,在c++中有库函数帮我们实现,这们就不需要我们自己来编程进行排序了. (一)为什么要用c++标准库里的排序函数 Sort()函数是c++一种排序方法之一,学会了这种方法也打消我学习c+ ...

  9. 【iOS】swift 排序Sort函数用法(包含NSDictionary排序)

    用了几分钟做的简单翻译 一个例子 直接贴代码,不过多解释 //这是我们的model class imageFile { var fileName = String() var fileID = Int ...

随机推荐

  1. scp失效问题

    1.症状 (1)登陆到服务器A(已在本机用ssh-add, ssh -A),scp 到服务器B时提示public key有问题: (2)/tmp/下没有ssh-XXX目录 2.原因 服务器A被pupp ...

  2. windows添加和删除服务

    删除系统服务,记得一定要小心用.避免删错sc delete 服务名 加入服务: sc create 服务名 binPath= 路径 start= auto

  3. Android 中的Resource

    Android与ios相比,各种各样Resource算个独特之处.详情请参见官网Resource Types Resource有许多种,常见的有图像资源,布局资源,等等.每一种资源的位置都是固定的,这 ...

  4. Java最常用的变量定义汇总

    Java最常用的数据类型有基本数据类型,字符串对象,数组,基本数据类型又分为:数值型(包括整形和浮点型),字符型,布尔型,下面用一个简单的程序把这些数据类型汇总一下 public class Java ...

  5. 重温CSS之背景、文本样式

    CSS背景样式: 背景色:background-color属性,设置元素的背景色,如:div {background:blue;}--设置所有div元素的背景为蓝色: 背景图像:background- ...

  6. CUDA学习笔记(一)——CUDA编程模型

    转自:http://blog.sina.com.cn/s/blog_48b9e1f90100fm56.html CUDA的代码分成两部分,一部分在host(CPU)上运行,是普通的C代码:另一部分在d ...

  7. atom 震动特效

    1.下载atom 2.配置环境变量 3.运行apm install activate-power-mode 4.打开Atom激活(control+alt+o(是o不是零)) 注:新标签若没效果可以ct ...

  8. operator new与new operator的区别

    原文地址:http://www.cnblogs.com/jamesmile/archive/2010/04/17/1714311.html,在此感谢 C++中的operator new与new ope ...

  9. mysql 指定端口

    mysql -P3307 -uemove -h180. -p #-P是指定端口

  10. Vim折叠模式设置

    参考文章:http://www.cnblogs.com/welkinwalker/archive/2011/05/30/2063587.html set foldmethod=indent " ...