gpt4 book ai didi

c++ - 在 C++ 中对 vector 进行分组排序

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:10:34 25 4
gpt4 key购买 nike

我有一个充满对象的 std::vector,每个对象都有一个与之关联的数字组标识符。该对象还具有“大小”和“名称”等属性。

我需要能够按名称、大小和其他属性对对象 vector 进行排序,同时将它们分组在一起(例如,按上面提到的组标识符)。

如何实现这个目标?

最佳答案

使用 STL,可以直接插入您自己的比较函数。您想要定义一个比较函数,首先比较组,然后再比较其他属性。

static bool CompareWidget(const Widget& w1, const Widget& w2)
{
if(w1.GetGroupNumber() != w2.GetGroupNumber())
return (w1.GetGroupNumber() < w2.GetGroupNumber());
if(w1.GetHeight() != w2.GetHeight())
return (w1.GetHeight() < w2.GetHeight();
/// etc
return false;
}


static void SortWidgetVector(WidgetVector& widgetVector)
{
std::sort(widgetVector.begin(), widgetVector.end(), CompareWidget);
}

关于c++ - 在 C++ 中对 vector 进行分组排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1106476/

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