📜  对 C++ 的排序向量(1)

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

C++中的排序向量

在C++中,我们可以使用STL中的向量(vector)容器来存储数据。除此之外,STL中还提供了一些方便的算法,其中包括排序算法。本文将介绍如何使用C++中的排序向量。

什么是向量?

向量是一个可以改变大小的数组。它还提供了许多有用方法,例如在末尾添加元素,删除元素等。向量使用起来非常简单,以下是创建一个包含3个整数的向量的示例:

#include <vector>
#include <iostream>

int main() {

    std::vector<int> vec = { 1, 2, 3 };
    for (int i = 0; i < vec.size(); ++i)
        std::cout << vec[i] << " ";

    return 0;
}

输出:

1 2 3

我们可以像使用数组一样使用向量,例如vec[index]来访问向量元素。

如何排序一个向量?

在C++中,我们可以使用STL中的sort函数来排序一个向量。sort函数需要三个参数:

sort(start_index, end_index, compare_function);

其中,start_index是要排序的向量中的第一个元素的下标,end_index是要排序的向量中的最后一个元素的下标+1,compare_function是一个函数指针,用来比较两个元素的大小关系。

以下是一个将向量按升序排序的示例:

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

bool compare(int a, int b) {
    return a < b;
}

int main() {

    std::vector<int> vec = { 3, 1, 4, 1, 5, 9, 2, 6, 5, 3 };
    std::sort(vec.begin(), vec.end(), compare);

    for (int i = 0; i < vec.size(); ++i)
        std::cout << vec[i] << " ";

    return 0;
}

输出:

1 1 2 3 3 4 5 5 6 9

在此示例中,我们使用std::sort函数将整数向量vec按升序排序。比较函数compare用于比较两个整数的大小,如果a < b,则返回true。

我们可以使用不同的比较函数来将向量按不同的排序方式进行排序。例如,我们可以将向量按降序排序:

bool compare(int a, int b) {
    return a > b;
}

输出:

9 6 5 5 4 3 3 2 1 1
总结

C++中的向量是一个很有用的数据结构,具有动态大小的数组特性。STL中提供了sort函数,可以轻松地将向量排序。通过使用不同的比较函数,我们可以将向量按升序、降序等方式进行排序。