【发布时间】:2013-07-13 05:31:24
【问题描述】:
我正在编写一个模板函数,它接受一个元素向量并对其进行一系列操作。其中一项操作是 std::sort()。
当然,客户端代码需要提供一个比较函子。如果客户端代码传入已知类型(整数、字符串等)的容器,我不希望客户端代码为此参数指定值。我应该如何定义我的 Comp 模板参数的默认值?
template<typename Container, typename Comp=????>
void my_func(Container elements, Comp comp) {
...
std::sort(elements.begin(), elements.end(), comp);
...
}
【问题讨论】:
-
请注意,
std::sort在std::list上可能效率不高;因此std::list有一个.sort成员函数。 -
你的代码打错了,你写的是“typenam Container”,应该是“typename”