📜  C++中数组的排序向量(1)

📅  最后修改于: 2023-12-03 15:14:02.152000             🧑  作者: Mango

C++中数组的排序向量

介绍

在C++语言中,数组是一种非常常用的数据类型。排序算法是计算机科学中的基本问题之一。在本文中,我们将讨论如何使用向量对C++中的数组进行排序。向量是一种非常强大的动态数组,它可以自动调整大小。

使用向量对数组排序

在C++中,可以使用STL(标准模板库)的向量和算法头文件中的sort函数来对数组进行排序。下面是一个简单的示例代码,它将一个整数数组按升序排序:

#include <vector>
#include <algorithm>
#include <iostream>

int main()
{
  int arr[] = {5, 2, 8, 3, 1, 6};
  int n = sizeof(arr)/sizeof(arr[0]);

  std::vector<int> vect(arr, arr+n);

  std::sort(vect.begin(), vect.end());

  for(int i=0; i<n; i++)
    std::cout<<vect[i]<<" ";

  return 0;
}

在上面的代码中,我们首先声明一个整数数组arr并将其初始化。然后,我们使用 sizeof() 函数计算数组的长度,以便在后面的代码中使用。接下来,我们创建了一个名为 vect 的向量,并将数组传递给其构造函数。

最后,我们使用 sort() 函数将向量 vect 中的元素按升序排序。最后,我们通过 for 循环遍历向量并输出其元素。

此时,程序输出结果如下:

1 2 3 5 6 8 
从大到小排序

如果您想按降序排序数组,则可以使用 sort() 函数及其参数 greater<>()。可以修改上面的代码,如下所示:

#include <vector>
#include <algorithm>
#include <iostream>

int main()
{
  int arr[] = {5, 2, 8, 3, 1, 6};
  int n = sizeof(arr)/sizeof(arr[0]);

  std::vector<int> vect(arr, arr+n);

  std::sort(vect.begin(), vect.end(), std::greater<int>());

  for(int i=0; i<n; i++)
    std::cout<<vect[i]<<" ";

  return 0;
}

在这段代码中,我们使用 greater<>() 函数对象作为 sort() 函数的第三个参数,以按降序排序 vect 向量。然后我们遍历向量并输出其元素。程序输出结果如下:

8 6 5 3 2 1 
结论

C++中的向量提供了一种更灵活的数据类型,可以轻松排序和操作。在本文中,我们介绍了如何使用STL向量和 sort() 函数对数组进行排序。无论您需要升序还是降序排序,这些代码都可以为您提供帮助。