📌  相关文章
📜  对对象向量进行排序 c++ - TypeScript (1)

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

对对象向量进行排序 C++ - TypeScript

在C++和TypeScript中,我们经常需要对对象向量进行排序。如果我们有一个向量(或数组)的对象,并且我们想按照其中一个属性进行排序,我们需要使用一个排序算法。本文将介绍如何使用C++和TypeScript对对象向量进行排序。

C++

在C++中,我们可以使用std::sort函数来对向量进行排序。std::sort函数需要我们提供一个比较函数,用于比较两个元素。这个比较函数应该返回一个bool值,如果第一个元素小于第二个元素,则返回true,否则返回false

以下是一个使用std::sort函数对存储Person对象的向量按照年龄进行排序的示例:

#include <vector>
#include <algorithm>

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

bool compare_people_by_age(const Person& person1, const Person& person2)
{
    return person1.age < person2.age;
}

int main()
{
    std::vector<Person> people = { {"Alice", 24}, {"Bob", 18}, {"Charlie", 30} };
    std::sort(people.begin(), people.end(), compare_people_by_age);
}

在上面的示例中,我们定义了一个compare_people_by_age函数,用于比较两个Person对象的年龄。我们然后使用这个函数来调用std::sort函数,对people向量进行排序。

TypeScript

在TypeScript中,我们可以使用Array.prototype.sort方法来对数组进行排序。与C++中的std::sort函数类似,sort方法也需要我们提供一个比较函数作为参数。这个比较函数也应该返回一个数字,如果第一个元素小于第二个元素,则返回负数,如果两个元素相等,则返回0,否则返回正数。

以下是一个使用sort方法对存储Person对象的数组按照年龄进行排序的示例:

interface Person {
    name: string;
    age: number;
}

const people: Person[] = [ 
    { name: "Alice", age: 24 },
    { name: "Bob", age: 18 },
    { name: "Charlie", age: 30 }
];

function comparePeopleByAge(person1: Person, person2: Person): number {
    return person1.age - person2.age;
}

people.sort(comparePeopleByAge);

在上面的示例中,我们定义了一个comparePeopleByAge函数,它用于比较两个Person对象的年龄。我们然后使用这个函数来调用sort方法,对people数组进行排序。

结论

在C++和TypeScript中,对对象向量进行排序的方法略有不同。C++使用std::sort函数,而TypeScript使用Array.prototype.sort方法。但是,它们都需要我们提供一个比较函数来执行实际的排序操作。无论使用哪种语言进行编码,都需要确保提供正确的比较函数来保证排序的正确性。