21xrx.com
2025-03-21 05:12:36 Friday
文章检索 我的文章 写文章
C++ 中的向量排序(vector sort)
2023-06-24 09:06:33 深夜i     31     0
C++ 向量排序 vector sort

C++ 中的 vector 是一种动态数组,可以在运行时动态地增加或缩减其大小。一般情况下,我们会需要对 vector 中的元素进行排序。C++ 中提供了一个标准库函数 std::sort,可以对 vector 中的元素进行排序。

使用 std::sort 对 vector 进行排序非常简单。需要注意的是,sort 函数是必须包含在 algorithm 头文件中的。下面是一个简单的例子:

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
  vector<int> vec 5;
  sort(vec.begin(), vec.end());
  for (int i = 0; i < vec.size(); ++i)
  {
    cout << vec[i] << " ";
  }
  
  return 0;
}

在上述代码中,我们首先创建了一个 vector,然后调用了 sort 函数对其进行排序。sort 函数的第一个参数是 vector 的起始点,第二个参数是 vector 的终止点。

上述代码的输出结果为:1 2 3 4 5 6 7 8 9。

此外,除了使用默认的升序排序方式外,sort 函数还提供了另一个可选参数,可以定制排序方式。这个参数是一个比较函数,接收两个参数,返回一个 bool 类型的值。如果第一个参数应排序前于第二个参数,返回 true,否则返回 false。

下面是另一个例子,我们使用 sort 函数和一个比较函数来对 vector 进行降序排序:

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool my_compare(int a, int b)
  return a > b;
int main()
{
  vector<int> vec 5;
  sort(vec.begin(), vec.end(), my_compare);
  for (int i = 0; i < vec.size(); ++i)
  {
    cout << vec[i] << " ";
  }
  return 0;
}

在上述代码中,我们定义了一个比较函数 my_compare,该函数始终返回第一个参数大于第二个参数。然后在调用 sort 函数时将该函数作为第三个参数传递。

上述代码的输出结果为:9 8 7 6 5 4 3 2 1。

总之,对 vector 进行排序是比较常见的操作。在 C++ 中,使用标准库函数 std::sort 可以轻松地完成此操作。如果需要定制排序方式,sort 函数也提供了相应的接口。

  
  

评论区