以最佳方式排序
sorting a the best way possible
>我有一个列表
std::list<Selector> _selectorList;
我确实解析了一些东西,我得到了一个智能指针和一个与智能指针关联的优先级。我实现了一个结构来保存这两个参数,如下所示。
struct Selector
{
int priority;
SmartPointer *selector;
}
将完成 n 个解析,因此 n 个结构实例将被推回列表中。最后,我应该根据结构中优先级变量的降序对列表进行排序。目前,我计划这样做。
_selectorList.sort();
有没有比这更好的方法,前提是我必须使用列表(仅而不是其他)来存储通过解析返回的智能指针?
就像larsman告诉你的那样,使用指向SmartPointer 的指针很可能是错误的。由于智能指针用于避免内存泄漏,因此引用计数器会在对象复制或分配时更新,因此 SmartPointer * 可能毫无用处。
对于更好的方法,您可以重用 std::list::sort 而不是重新实现您自己的排序操作。唯一要做的就是让您的选择器实现比较运算符,以便能够对列表进行排序。看看这里。
相关文章:
- 如何使用 std::sort 以'custom'的方式就地对数组进行排序
- 是否存在用于按以下方式对两个范围进行排序和分区的标准算法?
- 使用按插入方式排序的参数创建哈希映射
- 重载小于 (<) 运算符,用于以多种方式对对象进行排序
- Visual Studio:热键/自动对.h中的函数进行排序以与.cpp保持一致的方式
- 对标准库容器类型进行排序的static_assert() 的优雅方式
- 您能否更改 2d 数组在 C++/CUDA 中的排序方式
- MFC选项卡以编程方式排序
- 按降序排序的最佳方式
- 带跳过列表的双链接列表,以排序方式插入
- 如何在C++中以特定的方式对数组进行排序
- 以最佳方式排序
- 我在合并排序中传递此数组的方式有什么问题
- 如何使用 calloc/malloc 等函数对动态创建的存储进行正确排序,使其以 FIFO 方式运行
- 我能否以编程方式对 wxDataViewCtrl 的列重新排序
- 以排序方式迭代 std::vector<std::p air<T,U> > 对象
- 使用STL std::将方式排序为qsort_r
- C++矢量快速排序-似乎在不同的枢轴上工作方式不同
- std::map 的排序方式如何
- 链表排序方式的不同之处