使用STL库sort函数对vector进行排序
使用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进行排序的更多相关文章
- STL的sort函数是使用什么排序算法的?
先占坑,大概就是主要快速排序+插入排序+堆排序的合体
- sort函数用于vector向量的排序
参考资料: 关于C++中vector和set使用sort方法进行排序 作者注:这篇文章写得相当全面,包括对vector和set中不同数据类型(包括结构体)的排序,还有一些还没看懂--特作此摘录,供当前 ...
- <algorithm>里的sort函数对结构体排序
题目描述 每天第一个到机房的人要把门打开,最后一个离开的人要把门关好.现有一堆杂乱的机房签到.签离记录,请根据记录找出当天开门和关门的人. 输入描述: 每天的记录在第一行给出记录的条目数M (M &g ...
- 『嗨威说』算法设计与分析 - STL中Sort函数的实现原理初探
本文索引目录: 一.对Sort算法实现的个人阅读体会 二.Sort算法使用的三个排序算法的优点介绍 2.1 插入排序的优缺点 2.2 堆排序的优缺点 2.3 快速排序的优缺点 2.4 新的结合排序—— ...
- STL之sort函数的用法
说明:本文仅供学习交流,转载请标明出处,欢迎转载! STL封装了一个排序算法,该算法相应的头文件为#include<algorithm>,我们能够依据须要对一个数组进行排序或者降序. so ...
- STL 之 sort 函数使用方法
关于Sort Sort函数是C++ STL(Standard Template Library / 标准函数库) <algorithm>头文件中的一个排序函数,作用是将一系列数进行排序,因 ...
- C++中STL的sort函数
简单介绍C++ sort函数 这个函数需要STL算法头文件 #include <algorithm> using namespace std; 这个sort( , , )可以带两个参数也可 ...
- sort函数的用法(C++排序库函数的调用)
对数组进行排序,在c++中有库函数帮我们实现,这们就不需要我们自己来编程进行排序了. (一)为什么要用c++标准库里的排序函数 Sort()函数是c++一种排序方法之一,学会了这种方法也打消我学习c+ ...
- 【iOS】swift 排序Sort函数用法(包含NSDictionary排序)
用了几分钟做的简单翻译 一个例子 直接贴代码,不过多解释 //这是我们的model class imageFile { var fileName = String() var fileID = Int ...
随机推荐
- Apache配置文件中的deny和allow的使用
Apache配置文件中的deny和allow的使用 由于产品的需要,最近在配置apache的负载均衡功能,但是在配置虚拟主机的访问权限的时候我们遇到了一些问题.主要问题是deny和allow的执行顺序 ...
- Android app主线程UI更新间歇性崩溃的问题
对App进行开发测试时,偶尔出现app崩溃的问题.日志如下: 10-25 18:44:52.935 15290-15290/com.zzq.cnblogs E/AndroidRuntime﹕ FATA ...
- PHP+redis实现超迷你全文检索
2014年10月31日 11:45:39 情景: 我们平台有好多游戏, 运营的同事在查询某一款游戏的时候, 目前使用的是html的select下拉列表的展现形式, 运营的同事得一个个去找,然后选中,耗 ...
- 【JAVA、C++】LeetCode 003 Longest Substring Without Repeating Characters
Given a string, find the length of the longest substring without repeating characters. For example, ...
- 中石油-高精度阶乘-java
问题 F: [高精度]高精度阶乘 时间限制: 1 Sec 内存限制: 64 MB提交: 49 解决: 13[提交][状态][讨论版] 题目描述 <魔法宝典>对于修罗王是如此重要,是因为 ...
- python 的类变量和对象变量
python是一种解释性的语言,任何变量可以在使用的时候才声明以及定义,也可以在程序运行的任何位置进行声明和定义新的变量. class Man(object): #直接定义的类的变量,属于类 #其中 ...
- HDU 1023 Traning Problem (2) 高精度卡特兰数
Train Problem II Time Limit: 1000MS Memory Limit: 32768KB 64bit IO Format: %I64d & %I64u Sub ...
- HDU 2082 母函数模板题
找单词 Time Limit: 1000MS Memory Limit: 32768KB 64bit IO Format: %I64d & %I64u Submit Status De ...
- WPF中的常用类汇总:
1.FrameworkElement: WPF中大部分的控件都可以转化成FrameworkElement,利用FrameworkElement属性获取相应的值: 2.WPF获取当前工作区域的宽度和高度 ...
- TypeC一个微软开发的超简单.NET依赖注入/IoC容器
控制反转(IoC,Inversion of Control)是由Martin Fowler总结出来的一种设计模式,用来减少代码间的耦合.一般而言,控制反转分为依赖注入(Dependency Injec ...