gpt4 book ai didi

c++ - 模板参数数量错误

转载 作者:行者123 更新时间:2023-11-30 02:26:04 26 4
gpt4 key购买 nike

我想写模板合并排序。

    template <class RandomAccessIterator, class Comparator = std::less<>>
void MergeSort(RandomAccessIterator begin, RandomAccessIterator end, Comparator compare) {
int s = end - begin;
if (s > 1)
{
RandomAccessIterator middle = begin + s / 2 + 1;
MergeSort(begin, middle, compare);
MergeSort(middle, end, compare);
std::inplace_merge(begin, middle, end, compare);
}
}

我得到的消息是:错误:模板参数的数量错误(0,应该是 1) 模板 >.

我试图将 std::less 移动到函数声明中,但也失败了。我需要做什么?

最佳答案

由于您将问题标记为 C++11 , 看来你不能使用菱形运算符。

正如您在 documentation 中看到的那样, 形式 std::less<>只允许自 C++14 .

你在这里可以做的是使用另一种形式:

std::less<typename std::iterator_traits<RandomAccessIterator>::value_type>

关于c++ - 模板参数数量错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43335617/

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