21xrx.com
2025-03-31 12:54:37 Monday
文章检索 我的文章 写文章
C++中使用pair进行排序
2023-07-03 03:16:35 深夜i     38     0
C++ pair 排序

在C++语言中,排序是一个非常重要的功能。排序能够帮助我们整理数据,使得它们更易于被理解和使用。在C++中,我们可以使用pair进行排序。pair是一个模板类,它允许我们存储两个不同类型的值并将它们作为一个单元进行处理。

使用pair进行排序非常简单,只需要遵循以下几个步骤:

1. 准备一个vector,并向其中添加一些pair。每个pair都有两个元素:第一个元素是要排序的值,第二个元素是该值的键。

vector<pair<int, string>> data;
data.push_back(make_pair(10, "Jim"));
data.push_back(make_pair(5, "Bob"));
data.push_back(make_pair(20, "Joe"));

2. 使用sort函数进行排序。sort函数需要三个参数:第一个参数是要排序的数据的起始位置,第二个参数是结束位置,第三个参数是比较函数。比较函数的作用是帮助sort函数确定排序的顺序。如果第一个参数比第二个参数小,则被认为是小于。在比较函数中,我们需要使用pair的第一个元素进行比较。

bool compare(const pair<int, string>& a, const pair<int, string>& b)
  return a.first < b.first;
sort(data.begin(), data.end(), compare);

3. 输出排序后的结果。

for (const auto& item : data)
  cout << item.first << " " << item.second << endl;

完整的代码如下:

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool compare(const pair<int, string>& a, const pair<int, string>& b)
  return a.first < b.first;
int main()
{
  vector<pair<int, string>> data;
  data.push_back(make_pair(10, "Jim"));
  data.push_back(make_pair(5, "Bob"));
  data.push_back(make_pair(20, "Joe"));
  sort(data.begin(), data.end(), compare);
  for (const auto& item : data)
  
    cout << item.first << " " << item.second << endl;
  
  return 0;
}

以上就是使用pair进行排序的方法,希望能对大家有所帮助。

  
  

评论区

请求出错了