使用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 ...
随机推荐
- 【Hibernate】Hibernate系列6之HQL查询
HQL查询 6.1.概述 6.2.分页查询 6.3.命名查询 6.4.投影查询-部分字段查询 6.5.报表查询 6.6.迫切左外连接.左外连接 6.7.迫切内连接.内连接 6.8.QBC查询.本地查询
- 排序稳定性stable
stable排序 O(n^2): InsertionSort,BubbleSort O(nlgn): MergeSort O(n+k): CountSort, RadixSort,BucketSort ...
- Windows远程桌面连接如何直接使用剪贴板功能
连接到Windows Server服务器时,通常使用远程桌面连接,那么如果有些时候按照习惯复制本地文件到远程服务器发现无法粘贴怎么办,这个时候稍微设置一下就OK了, 首先重新运行远程桌面连接,在登陆界 ...
- MongoDB副本集学习(二):基本测试与应用
简单副本集测试 这一节主要对上一节搭建的副本集做一些简单的测试. 我们首先进入primary节点(37017),并向test.test集合里插入10W条数据: . rs0:PRIMARY> ;i ...
- 【JAVA、C++】LeetCode 014 Longest Common Prefix
Write a function to find the longest common prefix string amongst an array of strings. 解题思路: 老实遍历即可, ...
- Redis适用于高并发的递增、递减功能
递增指令:incr(默认从0开始) 递减指令:decr(默认从0开始,递减会出现负数,这点跟memcache不一样,mc到0) 如下: 附上shardedJedisPool和JedisCluster的 ...
- C语言实现大数据除法
本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数.你需要输出商数Q和余数R,使得A = B * Q + R成立. 输入格式: 输入在1行中依次给出A和B,中间以1空格分隔. 输出格 ...
- struts2 <s:property/>标签的使用--输出时间格式转换
转载地址http://hi.baidu.com/nonyi_com/blog/item/acf1b8d74b6cf63e07088bc4.html 最近在使用struts2的<s:propert ...
- Ant基本使用指南
近期碰到了其他人在讨论这个ant,已经很多人在使用,故对他进行收集资料进了解,以便方便去使用.同时,在学习struts+spring+hibernate,尤其是Appfuse的过程中大量涉及到ant的 ...
- 深入学习SQL的Limit语句
一.基本语法 SQL的limit语法的如以下形式 SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset 当省略offset的时候 ...