📜  c++ 排序向量 - C++ (1)

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

C++ 排序向量

在C++中,向量是一种动态数组,可以存储任意类型的元素。当我们需要对向量中的元素进行排序时,可以使用C++中提供的排序函数。

1. 包含头文件

首先,我们需要包含<vector>头文件,以便使用向量。

#include <vector>
2. 创建向量

我们可以使用vector模板来创建一个向量。以下是创建一个整数向量的示例:

std::vector<int> vec;

我们还可以在创建向量的同时将元素初始化:

std::vector<int> vec = {5, 2, 8, 1, 9};
3. 排序向量

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);
4. 输出排序后的向量

排序完成后,我们可以使用循环遍历向量并输出排序后的元素。

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++中对向量进行排序的介绍。希望对你有所帮助!