一、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() { vectorvec = {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() { vectorvec = {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中的元素进行灵活的排序操作,以便更好地呈现数据。