【发布时间】:2017-06-03 03:09:48
【问题描述】:
如果这个论坛上已经存在类似的问题,我很抱歉,如果可以的话,请给我链接。
我有一个模板类
template<typename type>
class DoublyLinkedList {};
我想在里面加入 Sort 方法。
template<typename type>
class DoublyLinkedList
{
public:
void Sort(){}
};
但是列表是模板,所以它可以包含不同的类型。那么如何为我预见的所有类型创建方法呢?我是这样尝试的:
template<typename type>
class DoublyLinkedList
{
public:
void DoublyLinkedList<int>::Sort(){}
void DoublyLinkedList<string>::Sort(){}
};
但这是错误的。请帮忙。
【问题讨论】:
-
你可以像
std::list::sort那样做。 -
只需使用标准 C++ 容器。 Stack Overflow 不是一个“论坛”。
-
@ChristianHackl 那么,这不可能吗?我想有自己的实现。
-
我知道我可以用一种方法做到这一点,然后再识别列表类型,但我问的是两种方法。
-
@Michael:当然有可能。请参阅@NathanOliver 的评论。像
std::list那样做,并允许用户提供一个默认为std::less的函子。但这是一件完全无趣的事情,因为它重新发明了轮子,并且将是一个不如std::list的解决方案,除了扔掉它并改用std::list之外没有什么可做的。
标签: c++ list sorting templates