模板集合的不同排序方法
Different sort methods with template collection
如果这个论坛上已经存在类似的问题,我很抱歉,如果可以的话,给我链接。
我有一个模板类
template<typename type>
class DoublyLinkedList {};
我想在其中使用排序方法。
template<typename type>
class DoublyLinkedList
{
public:
void Sort(){}
};
但是列表是模板,因此它可以包含不同的类型。那么我如何为我预见的所有类型的方法创建方法呢?我尝试了这种方式:
template<typename type>
class DoublyLinkedList
{
public:
void DoublyLinkedList<int>::Sort(){}
void DoublyLinkedList<string>::Sort(){}
};
但这是错误的。请帮忙。
标准库通常处理此问题的方式是允许用户指定自己的比较函数。您可以添加一个模板化参数,您的类型用户可以使用该参数来提供比较函数,就像 std::sort 一样。在排序的实现中,您假设 comparer
是一个函数,它比较列表中的两个元素并返回或返回第一个元素应该在第二个元素之前。
#include <string>
template<typename type>
class DoublyLinkedList
{
public:
template<class Comp>
void Sort(Comp comparer);
};
void foo(DoublyLinkedList<std::string> & list)
{
// Sort list by length of strings
list.Sort([](const std::string p_left, const std::string p_right){
return p_left.size() < p_right.size();
});
}
相关文章:
- 在 c++ 中对类中的 c 字符串动态数组进行排序的最佳方法是什么?
- 有没有更好的方法对C++中的三个整数进行排序?
- 获取位于特定区间的已排序值列表的子列表的最短方法
- 在 C++ 中,以相反顺序排序的最快方法是什么?
- 迭代快速排序方法的分区算法问题
- 查看数字是否包含在未排序的双数字间隔内的最有效方法?
- 多次对容器进行排序,使用什么容器和什么方法
- 随机化超大文件内容排序的有效方法是什么?
- 我刚刚创建了一个非常快速的素数排序方法.如何改进?
- 模板集合的不同排序方法
- STL 中的排序方法不能交换向量中的内容
- 数据结构-选择排序方法
- 使用Functor在集合中生成自定义排序方法
- 插入阵列排序方法
- 选择排序方法似乎没有任何作用
- c++向量排序方法编译失败,返回预期表达式
- 寻找更好的数据排序方法
- 试图了解我的泡沫排序方法有什么问题
- 自定义链表排序方法
- EXC_BAD_ACCESS线程中运行递归合并排序方法时出错