📅  最后修改于: 2023-12-03 15:14:00.441000             🧑  作者: Mango
在C++中,向量是一种动态数组,可以存储任意类型的元素。当我们需要对向量中的元素进行排序时,可以使用C++中提供的排序函数。
首先,我们需要包含<vector>
头文件,以便使用向量。
#include <vector>
我们可以使用vector
模板来创建一个向量。以下是创建一个整数向量的示例:
std::vector<int> vec;
我们还可以在创建向量的同时将元素初始化:
std::vector<int> vec = {5, 2, 8, 1, 9};
C++提供了std::sort
函数来对向量进行排序。std::sort
函数接受两个迭代器参数,表示排序范围的起始和结束位置。以下是对整数向量进行升序排序的示例:
std::sort(vec.begin(), vec.end());
如果我们需要按照自定义的排序规则进行排序,可以使用自定义的比较函数作为std::sort
的第三个参数。比较函数应当接受两个参数,并返回一个布尔值,表示两个元素的比较结果。以下是按照自定义比较规则进行排序的示例:
bool compare(int a, int b) {
// 自定义的比较规则
// 返回true表示a排在b之前,返回false表示b排在a之前
// 这里以升序排列为例
return a < b;
}
std::sort(vec.begin(), vec.end(), compare);
排序完成后,我们可以使用循环遍历向量并输出排序后的元素。
for(auto element : vec) {
std::cout << element << " ";
}
std::cout << std::endl;
下面是一个完整的示例代码,包括创建向量、排序向量和输出排序后的向量。
#include <iostream>
#include <vector>
#include <algorithm>
bool compare(int a, int b) {
return a < b;
}
int main() {
std::vector<int> vec = {5, 2, 8, 1, 9};
std::sort(vec.begin(), vec.end(), compare);
for(auto element : vec) {
std::cout << element << " ";
}
std::cout << std::endl;
return 0;
}
以上就是在C++中对向量进行排序的介绍。希望对你有所帮助!