gpt4 book ai didi

c++ - 如何比较/排序包含自定义 typedef 的列表容器的元素?

转载 作者:太空狗 更新时间:2023-10-29 20:05:23 26 4
gpt4 key购买 nike

我想使用 std::list STL 容器来对包含的项目应用订单。但是,我要使用的项目是一个自定义 typedef,它由一个自定义类型和一个代表权重的 double 组成。如何确保可以根据元素的权重对结果列表进行排序?

typedef std::pair<linearVariable*, double> weightedVariable;

[...]

std::list<weightedVariable> tmp;

我必须做什么才能确保列表是根据对的第二部分(权重)排序的?有没有更好的方法来维护自定义类型的顺序?在我的例子中,权重不是 linearVariable 的属性,但可以计算出来。

最佳答案

您可以使用 std::list::sort 具有自定义比较功能:

inline bool comp(const weightedVariable& lhs, const weightedVariable& rhs)
{
return lhs.second < rhs.second;
}

tmp.sort(comp);

另一种选择是提供 bool operator<并使用 std::list::sort() :

inline bool operator < (const weightedVariable& lhs, const weightedVariable& rhs)
{
return lhs.second < rhs.second;
}

tmp.sort();

关于c++ - 如何比较/排序包含自定义 typedef 的列表容器的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13680757/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com