C++排序之stable_sort()的方法

stable_sort()可以对vector的某个成员进行排序,而且可保证相等元素的原本相对次序在排序后保持不变。

下面是该函数的实现方法代码:

#include <iostream>
#include<math.h>
#include <string>
#include <vector>
#include <iterator>
#include <algorithm>
 
using namespace std;
 
typedef struct TagNode
{
    int value;
    int index;
}Node;
 
bool myCmp(const Node& a, const Node& b)
{
    return a.value < b.value;
}
int main(int argc, char **argv)
{
    vector<Node> vtNode;
    vtNode.clear();
    Node tmp;
    int idx = 0, num;
 
    while(cin >> num && num)
    {
        ++idx;
        tmp.value = num;
        tmp.index = idx;
        vtNode.push_back(tmp);
    }
 
    stable_sort(vtNode.begin(), vtNode.end(), myCmp);
 
    cout << "Index\tValue:" << endl;
    vector<Node>::iterator pos;
    for(pos = vtNode.begin(); pos != vtNode.end(); ++pos)
    {
        cout << pos->index << "\t" << pos->value << endl;
    }
    return 0;
}


其结果如下:

   输入:98 34 6 3 8 1 100 45 66 88 202

  输出:

            Index   Value:

6       1

4       3

3       6

5       8

2       34

8       45

9       66

10      88

1       98

7       100

11      202
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/463095.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linhaifeng fullstack

fullstack day02: 数据类型、字符编码、文件处理 http://www.cnblogs.com/linhaifeng/articles/7133357.html 转载于:https://www.cnblogs.com/marcoxu/p/10564094.html

javascript校验2

* 判断字符串是否符合指定的正则表达式 */ Java代码 function f_check_formatStr(obj) { var str obj.value; var dtype obj.eos_datatype; var regu dtype.substring(dtype.indexOf("(")1,dtype.indexOf(")")); //指定的正则表…

抓取qq邮箱联系人

今天是:2010-03-14 &#xff0c;纪念昨晚熬到3点! 题外话&#xff1a;模拟登陆请求页面这次我用了httpclient4.0&#xff0c;也顺便学习一下&#xff0c;4.0跟以前的版本用法上有很大的不同&#xff0c;具体情况Google一下就知道了&#xff0c;个人觉得知道原理就行了&#xff…

HDFS的Block size的默认大小

今天无意中听到了同事说关于HDFS中每个block的大小&#xff0c;特意查了下&#xff1a; 从Hadoop的官网上看了各个版本的说明文档中关于 Data Blocks 的说明&#xff0c;发现是从2.7.3版本开始&#xff0c;官方关于Data Blocks 的说明中&#xff0c;block size由64 MB变成了12…

Jconsole查看Weblogic自定义MBean

简单的Jconsole连接到weblogic进程&#xff0c;只能连接Platform MBean server,看不到自定义MBean。 这时我们需要连接到 WebLogic MBean server&#xff0c;通过如下方式&#xff1a; 1. 创建wlfulclient.jar 1) cd %WL_HOME%/server/lib 2) java -jar wljarbuilder.jar 2. 启…

Centos7 安装Mysql5.7

我们经常需要在服务器上安装mysql&#xff0c;各种文档都有&#xff0c;但是很多都是一部分&#xff0c;我现在总结了一下&#xff0c;放到一起&#xff0c;以后大家不用一篇一篇查询了。 1.安装yum repo 由于CentOS 的yum源中没有mysql&#xff0c;需要到mysql的官网下载yum r…

MySQL Innodb存储引擎使用B+树做索引的优点

对于数据库来说&#xff0c;索引和表数据都是存放在磁盘上的&#xff0c;一般使用B树作为索引 MySQL Innodb存储引擎使用了B树作为索引的优点&#xff0c;主要有以下原因&#xff1a; 1、索引和表数据都是存放在磁盘上的&#xff0c;如果磁盘上的数据量过大时&#xff0c;无法…

用eclipse配置spket编写extjs代码方法

依然是备忘用的&#xff0c;因为以前学过的东西很容易就会遗忘&#xff0c;现在每学一点就记录下来&#xff0c;一来让自己有一定的成就感&#xff0c;二来也方便以后查阅。 ExtJS的好处我就不多说了&#xff0c;富客户端的ajax框架&#xff0c;美观&#xff0c;大方&#xff0…

【 iview 实践指南】之如何优雅地在Table中嵌套Input(代码篇)

iview 版本 3.2.0 template 部分&#xff1a; <template><div><Table class"data-manage-table"border:disabled-hover"true":columns"columns":data"datalist"><template slot-scope"{ row, index }"…

PHP函数学习摘录

1、任何有效的 PHP 代码都有可能出现在函数内部&#xff0c;甚至包括其它函数和类定义2、PHP 不支持函数重载&#xff0c;也不可能取消定义或者重定义已声明的函数。3、函数名是大小写无关的&#xff0c;不过在调用函数的时候&#xff0c;通常使用其在定义时相同的形式。 变量…

boost::scoped_ptr与std::unique_ptr

boost::scoped_ptr与std::unique_ptr都是类模板&#xff0c;封装了指针 两者都禁用了拷贝构造和赋值函数&#xff0c;因此不能作为STL容器中的元素&#xff0c;因为在执行push_back()时需要调用赋值函数。 std::unique_ptr实际上与boost::scoped_ptr是等价的&#xff0c;只是s…

接口,new,匿名内部类

接口&#xff0c;new&#xff0c;匿名内部类 接口不能被实例化&#xff0c;如&#xff1a; ----------------清单1---------------------- public interface Test { public void doIt(); } --------------------------------------------- 在测试类中语句&#xff1a;Test…

Python: 使用装饰器“@”取得函数执行时间

class A():Python: 使用装饰器“”取得函数执行时间 - oldJ的学习笔记 - 博客频道 - CSDN.NETPython: 使用装饰器“”取得函数执行时间 分类&#xff1a; Python 2009-10-14 12:53 752人阅读 评论(0) 收藏 举报Python中可以使用装饰器对函数进行装饰&#xff08;或说包装&#…

数据库07

索引 索引是一种单独的物理层面的数据结构&#xff0c;其作用是用于加速查询 mysql把数据存储到硬盘中&#xff0c;硬盘读写速度非常慢 一个应用程序&#xff0c;本质上就是对数据进行增删改查 一旦数据量比较大时&#xff0c;硬盘的响应速度变慢&#xff0c;给用户的感觉应用程…

ODT .NET 详解之 SqlDataSource 访问 Oracle

前一篇博文呢&#xff0c;介绍了如何搭配好 Oracle Developer Tools for Visual Studio .NET 的使用环境&#xff0c; 这一篇博文的话就会重点来介绍一下如何通过使用 SqlDataSource 这个控件来访问 Oracle 数据库了&#xff0c; 其实只要环境搭配好了&#xff0c;那么这一篇博…

springboot+thymeleaf+pageHelper带条件分页查询

html层 <div><a class"num"><b th:text"共 ${result.resultMap[pages]} 页"></b></a><a class"num" th:if"${result.resultMap[hasPreviousPage]} true" th:href"{/report/receivePage?cur…

Linux文件、目录权限及常用命令

############################################# 一、权限                 #############################################1、r 可读 42、w 可写 23、x 可运行 1##…

谷歌:不守规矩的“顽童”

十几岁&#xff0c;对于人类来说&#xff0c;是敏感多虑且叛逆的青春期&#xff0c;而十几岁对于一个企业则意味着扎实经营基础的黄金阶段。谷歌&#xff08;Google&#xff09;&#xff0c;这个十年来互联网领域最大的赢家&#xff0c;正是这个即将步入金钗之年的“顽童”&…

bloom filter

今天的文章和大家一起来学习大数据领域一个经常用到的算法——布隆过滤器。如果看过《数学之美》的同学对它应该并不陌生&#xff0c;它经常用在集合的判断上&#xff0c;在海量数据的场景当中用来快速地判断某个元素在不在一个庞大的集合当中。它的原理不难&#xff0c;但是设…

数据描述

数据描述 1、静态数据 本系统支持用户个人信息存储以及旅游地点、天数、花费金额、景点的推荐存储。因此&#xff0c;本系统需要存储数据库部分信息。 2、动态数据 用户登录信息 用户搜索结果 用户个人信息 旅游分享的攻略 用户个人留言 用户偏好信息 3数据库描述&#xff1a;数…