您的位置:

C++ vector排序实现方法分享

一、vector排序的概述

vector是C++ STL(Standard Template Library,标准模板库)提供的一种动态数组容器,可以根据需要自动调整数组的大小。对于vector中的元素进行排序是常见的需求,可以让数据更好地呈现出来。C++ vector排序有很多方法,本篇文章主要介绍几种常用的方法,包括sort()函数、自定义比较函数、stable_sort()函数等。

二、sort()函数的使用

sort()函数是C++标准库中提供的一种排序算法,其功能十分强大。我们可以用sort()函数对vector中的元素进行排序,具体代码如下:

#include 
#include 
   
#include 
    

using namespace std;

int main() {
    vector
      vec = {9, 3, 7, 1, 5};
    sort(vec.begin(), vec.end());
    for(int i = 0; i < vec.size(); i++) {
        cout << vec[i] << " ";
    }
    return 0;
}

     
    
   
  

运行结果:1 3 5 7 9 。sort()函数默认按升序进行排序,如果需要降序排序,可以将代码改为:

sort(vec.begin(), vec.end(), greater());

  

运行结果:9 7 5 3 1 。

三、自定义比较函数

除了使用sort()函数提供的默认升序和降序排序方式,我们还可以自定义比较函数来实现排序。下面的代码演示了如何使用自定义比较函数对vector中的元素进行降序排序:

bool myfunc(int a, int b) {
    return a > b;
}
int main() {
    vector vec = {9, 3, 7, 1, 5};
    sort(vec.begin(), vec.end(), myfunc);
    for(int i = 0; i < vec.size(); i++) {
        cout << vec[i] << " ";
    }
    return 0;
}

  

运行结果:9 7 5 3 1 。

四、stable_sort()函数的使用

stable_sort()函数与sort()函数非常相似,不同之处在于stable_sort()函数能够保证排序前后相等的元素相对位置不变。下面的代码演示了如何使用stable_sort()函数进行排序:

int main() {
    vector vec = {9, 3, 7, 1, 5};
    stable_sort(vec.begin(), vec.end());
    for(int i = 0; i < vec.size(); i++) {
        cout << vec[i] << " ";
    }
    return 0;
}

  

运行结果:1 3 5 7 9 。可以看到,stable_sort()函数与sort()函数的运行结果相同,只不过stable_sort()函数保证了相等元素的相对位置不变。

五、总结

C++ vector排序是实现数据排序的重要手段,通过sort()函数、自定义比较函数和stable_sort()函数的使用,我们可以对vector中的元素进行灵活的排序操作,以便更好地呈现数据。