C++排序

一、C++结构体排序   

  我将结构体 result 存入在一个vector vResult 中,最近需要在C++中按照结构体中的 score 进行排序,在网上查找了一些资料,这里对采用的方法记录一下,方便以后使用。

1、引入头文件

#include <algorithm>

2、定义排序方法

复制代码
struct result
{
float score;
...
}

bool
cmp (result a, result b) { return a.score < b.score; // < 按照升序排列, > 按照降序排列 }
复制代码

3、sort()排序

int main()
{
    ...
    sort(vResult.begin(), vResult.end(), cmp);
    ...
}

 

二、 按给定索引排序

复制代码
std::vector<int> sortedIds;
for (int i = 0; i < boundIds.size(); ++i) {
    sortedIds.push_back(i);
}  
// boundIds type is std::vector<std::pair<int, int>> std::sort(sortedIds.begin(), sortedIds.end(), [
&](const int& a, const int& b) { return ((boundIds[a].first + boundIds[a].second) < (boundIds[b].first + boundIds[b].second)); });

  std::vector<std::vector<int> > tmpArray;
  for (const int& idx : sortedIds) {
    tmpArray.push_back(tArray[idx]);
  }

tmpArray.swap(tArray);     
复制代码

 

posted @   半夜打老虎  阅读(538)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示