gpt4 book ai didi

c++ - 排序列表 - 最好的方法

转载 作者:行者123 更新时间:2023-11-30 03:01:33 24 4
gpt4 key购买 nike

我有一个 list

std::list<Selector> _selectorList;

我确实解析了一些东西,我得到了一个智能指针和一个与智能指针关联的优先级。我实现了一个结构来保存这两个参数,如下所示。

struct Selector
{
int priority;
SmartPointer *selector;
}

将进行 n 次解析,结果 n 次结构实例将被推回列表中。最后,我应该根据结构中优先级变量的降序对列表进行排序。目前,我打算这样做。

_selectorList.sort();

有没有比这更好的方法,前提是我必须使用一个列表(仅此而已)来存储解析返回的智能指针?

最佳答案

就像 larsman 告诉你的那样,使用指向 SmartPointer 的指针很可能是错误的。由于使用智能指针来避免内存泄漏,因此引用计数器会在对象复制或分配时更新,因此 SmartPointer * 可能没有用。

关于更好的方法,您可以重用 std::list::sort 而不是重新实现您自己的排序操作。唯一要做的就是让您的选择器实现比较运算符,以便能够对您的列表进行排序。看看here .

关于c++ - 排序列表 - 最好的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10977300/

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