现在的位置: 首页 > 操作系统 > 正文

C++数组排序怎么返回数值在原数组中的下标

2020年02月13日 操作系统 ⁄ 共 757字 ⁄ 字号 评论关闭

数组排序返回数值在原数组中的下标在matlab中根本就不是问题,一个sort函数解决:

[B,IX] = sort(A,...)

其中A为排序前的数组,B为排序后的数组,IX为排序后的下标。

可在C++中就没有这么简单了,找遍了所有可能的函数,都没有发现能实现这个功能的。于是自己写一个,供大家参考。基本思路是:把数值(value)和下标(index)封装成一个结构体,当数值排序时,其下标也跟着跑。

代码如下:

#include#includeusing namespace std;

struct node { int value; int index; }; bool cmp(struct node a, struct node b) { if(a.value < b.value) { return true; } return false; }

int main(){node* a=new node[3];a[0].index=0;a[1].index=1;a[2].index=2;a[0].value=20;a[1].value=10;a[2].value=30;sort(a,a+3,cmp);for(int i=0;i<3;i++){ cout<<a[i].value<<" "<<a[i].index<<endl;}delete [] a;return 0;}

程序输出为:

本文永久更新链接地址:http://www.xuebuyuan.com/Linux/2016-11/137568.htm

以上就上有关C++数组排序怎么返回数值在原数组中的下标的相关介绍,要了解更多C++数组排序,C++数组,C++数组排序怎么返回数值在原数组中的下标,编程,Linux编程,Linux Shell,Android,Android教程,JAVA,C语言,Python,HTML5内容请登录学步园。

抱歉!评论已关闭.