首页 > 编程语言 > 详细

C++ 数组排序并获取数组对应序号的排序结果

时间:2020-07-07 17:42:06      阅读:174      评论:0      收藏:0      [点我收藏+]

直接使用C++的sort函数获取的仅仅是数据的排列结果,当我们想要对应序号的排序结果呢?

 

获取数据对应序号的排序结果的思路是:首先产生序号数组,然后在排序时排列序号数组,判断的是序号对应的数据大小。代码如下

 

 1   vector<int> vData(10);  //数据
 2     vector<int> vIndex(10); //序号
 3     iota(vData.begin(),vData.end(),0);  //递增赋值
 4     iota(vIndex.begin(),vIndex.end(),0);//递增赋值
 5     random_shuffle(vData.begin(),vData.end());//打乱数据
 6     for(auto data:vData) { cout<<data<<","; }
 7     cout<<endl;
 8     sort(vIndex.begin(),vIndex.end(),
 9          [&vData](int a,int b){ return vData[a]>vData[b]; });//此处对数据判断,然后对序号排列
10     for(auto index:vIndex) { cout<<vData[index]<<","; }
11     cout<<endl;

 

输出结果为:

4,3,7,8,0,5,2,1,6,9,

9,8,7,6,5,4,3,2,1,0,

 

C++ 数组排序并获取数组对应序号的排序结果

原文:https://www.cnblogs.com/peimingzhang/p/13261843.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!