gpt4 book ai didi

c++ - 模板调用函数错误 - 没有匹配函数调用 'bubbleSort'

转载 作者:行者123 更新时间:2023-11-30 03:17:00 25 4
gpt4 key购买 nike

没有匹配函数来调用“bubbleSort”。我在同一个 .hpp 文件中有这两个函数。

template<typename T>
void bubbleSort(std::vector<T> &vec){
T zacasen;
for (int i=0; i<vec.size(); i++) {
for (int j=0; j<vec.size()-1; j++) {
if(vec[j]>vec[j+1]){
zacasen=vec[j];
vec[j]=vec[j+1];
vec[j+1]=zacasen;
}
}
}
}

template < int N, typename T >
void sort(const std::vector<T> &vec){
if(N==1){
bubbleSort(vec);
}else if(N==2){
//quicksort(vec, 0, vec.size());
}
}

最佳答案

你有

void bubbleSort(std::vector<T> &vec)

但是

void sort(const std::vector<T> &vec)

你不能调用 bubbleSort(vec)来自你的 sort因为 const std::vector<T>不是 std::vector<T> (注意 const )并且没有可以将它变成一个的隐式转换序列。因此,这里没有可供重载解析选择的可行函数……

为什么你的 sort求一个const vector 开始?因为它不返回一个新的 vector ,所以它可能做它的名字暗示它会做的唯一方法是重新排序(即修改)它给定的 vector 的内容!?

关于c++ - 模板调用函数错误 - 没有匹配函数调用 'bubbleSort',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55802124/

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