gpt4 book ai didi

c++ - 为什么我必须将这些引用参数声明为 const 或按值传递?

转载 作者:行者123 更新时间:2023-11-28 02:34:25 25 4
gpt4 key购买 nike

<分区>

#include <vector>
#include <iostream>

using namespace std;

static const int NOT_FOUND = -1;

template <class sequence, class T>
int binarySearch(sequence& seq, int low, int high, T& item)
{
//..
}

template <class sequence, class T>
int binarySearch(const sequence& seq, const T& item)
{
if (seq.size() == 0)
return NOT_FOUND;
return binarySearch(seq, 0, seq.size() - 1, item);
}

int main()
{
vector<int> t1 = {0, 3 ,45, 94};
cout << binarySearch(t1, 0);
//binarySearch(t1, 0, t1.size() - 1, 45);
return 0;
}

为什么编译器不接受:

template <class sequence, class T>
int binarySearch(sequence& seq, T& item)

?

此外,为什么程序按照规定编译,但调用

binarySearch(t1, 0, t1.size() - 1, 45);

从主要不编译?

在任何情况下,编译器错误都是“没有匹配函数来调用‘binarySearch’。

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