使用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 ...
随机推荐
- android dialog 模拟新浪、腾讯title弹框效果
http://blog.csdn.net/jj120522/article/details/7764183 首先我们看一下新浪微博的效果(其它就是一个dialog): 点 ...
- 【Django】Django 直接执行原始SQL 如何防止SQL注入 ?
代码示例: #错误--不要直接格式化字符串 query = 'SELECT * FROM myapp_person WHERE last_name = %s' % lname Person.objec ...
- java类的封装 继承 多态
1.猜数字小游戏 package cn.jiemoxiaodi_02; import java.util.Scanner; /** * 猜数字小游戏 * * @author huli * */ pub ...
- (转)Android中的Shape使用总结
http://blog.csdn.net/bear_huangzhen/article/details/24488337 在Android程序开发中,我们经常会去用到Shape这个东西去定义各种各样的 ...
- Android之数据库操作
安卓数据库帮助类 /** * 数据库帮助类,用于管理数据库 * @author Administrator * */ public class PersonSQLiteOpenHelper exten ...
- 使用rsync 的 --delete参数删除目标目录比源目录多余的文件
root@v01 ~]# mkdir dir01 dir02 [root@v01 ~]# ls anaconda-ks.cfg dir02 framework install.log.syslog m ...
- Vim折叠模式设置
参考文章:http://www.cnblogs.com/welkinwalker/archive/2011/05/30/2063587.html set foldmethod=indent " ...
- 在Android4.4上新增加keycode
keycode是android定义好的,但是有时候无法满足需要,进行定制化难免会涉及到新增加keycode.分成两部分,驱动和framework,这里主要讲解framework部分: 一.驱动部分: ...
- HTML 调用iscroll.js主要事项
iscroll是一款很不错的滚动控件(js),但是在调用的时候,需要注意一些事项: 1.iscroll支持水平和垂直滚动,那么在调用的时候,一定注意滚动div必须大于父div,也就是说,父div的宽度 ...
- hrbustoj 1179:下山(DFS+剪枝)
下山Time Limit: 1000 MS Memory Limit: 65536 KTotal Submit: 271(111 users) Total Accepted: 129(101 user ...