21xrx.com
2024-05-20 11:29:08 Monday
登录
文章检索 我的文章 写文章
C++中使用vector和pair实现排序
2023-07-13 06:09:33 深夜i     --     --
C++ vector pair 排序

C++是一种常用的编程语言,其中的vector和pair是常用的数据结构,可以非常方便地实现排序。本文将介绍如何在C++中使用vector和pair来实现排序。

首先,让我们来了解一下vector和pair的用法。vector是一个可变长数组,可以容纳任意数量的元素,而pair是一个存储两个值的数据结构。这两个数据结构都可以在C++标准库中找到,并且被广泛使用。

在排序中,我们可以使用vector来存储需要排序的元素。例如,我们可以有一个vector 来存储一组整数。然后,我们可以使用标准库函数std::sort来对这个vector进行排序。排序的方式可以通过函数对象或者lambda表达式进行自定义。

接下来,我们来看看如何使用pair来实现排序。假设我们需要对一组数据进行排序,这组数据由一些字符串和对应的数字组成。我们可以定义一个vector >来存储这些数据。这个vector中的每一个元素都是一个由字符串和对应数字组成的键值对,可以根据字符串或者数字进行排序。排序的方式也可以通过函数对象或者lambda表达式自定义。

下面是一个用vector和pair实现排序的例子:


#include <iostream>

#include <vector>

#include <utility>

#include <algorithm>

using namespace std;

int main() {

  vector<int> nums = 5;

  vector<pair<string, int>> data = { 3, "banana", 2};

  // 对 nums 进行排序

  sort(nums.begin(), nums.end());

  // 对 data 进行排序

  sort(data.begin(), data.end(), [](const pair<string, int>& p1, const pair<string, int>& p2)

    return p1.second < p2.second;

  );

  // 输出排序结果

  for (int num : nums)

    cout << num << " ";

  

  cout << endl;

  for (auto& d : data) {

    cout << "(" << d.first << ", " << d.second << ") ";

  }

  cout << endl;

  return 0;

}

运行这段代码可以得到以下输出:


1 2 3 4 5

(banana, 1) (cherry, 2) (apple, 3)

可以看到,我们成功地对一个vector 和一个vector >进行了排序。这样,我们就可以在C++中灵活地使用vector和pair来实现各种排序需求。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复