📜  以降序对向量进行排序 c++ (1)

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

以降序对向量进行排序 C++

在C++中,我们可以使用标准库中的sort函数来对向量进行排序。sort函数可以排序包括数组、向量、链表在内的STL容器中的元素。

要对向量进行降序排序,我们需要自定义排序规则。比如,如果我们要对整型向量进行排序,可以定义一个lambda函数:

std::vector<int> v{1, 3, 2, 5, 4};
std::sort(v.begin(), v.end(), [](int i, int j){ return i > j; });  // 降序排序

这里的lambda函数就是排序规则,它接受两个整型参数i和j,返回一个bool值表示i是否应该排在j前面。

lambda函数的表达式[](int i, int j){ return i > j; }表示对两个整数进行比较,如果i比j大,则i应该排在j前面,即降序排序。

如果我们要对一个结构体向量进行排序,可以自定义一个比较函数:

struct Person {
    std::string name;
    int age;
};

bool sortByAge(const Person &a, const Person &b) {
    return a.age > b.age;  // 降序排序
}

std::vector<Person> v{
    {"Alice", 20},
    {"Bob", 30},
    {"Charlie", 25}
};
std::sort(v.begin(), v.end(), sortByAge);  // 降序排序

在这个例子中,我们定义了一个Person结构体,其中包含一个名字和一个年龄。我们定义了一个sortByAge函数,它接受两个Person类型的参数a和b,返回一个bool值,表示a是否应该排在b前面。sortByAge函数按照年龄来比较,返回true表示a的年龄比b的年龄大,应该排在前面,即降序排序。

最后,我们调用sort函数对向量进行降序排序。

以上就是在C++中对向量进行降序排序的方法。如果你要对其它STL容器进行排序,也可以使用类似的方法。