gpt4 book ai didi

c++ - 没有用于调用 'merge(std::vector&, std::vector&) 的匹配函数

转载 作者:太空宇宙 更新时间:2023-11-04 14:53:27 25 4
gpt4 key购买 nike

#include <iostream>
#include <algorithm>
#include <vector>

std::vector <int> mergesort(std::vector <int> list)
{
int n = list.size();
if(n == 1)
{
return list;
}
std::vector<int> v2(list.begin(), list.begin() + list.size()/2),
v3(list.begin() + list.size()/2, list.end());
v2 = mergesort(v2);
v3 = mergesort(v3);
return merge(v2, v3);

}

std::vector <int> merge(std::vector <int> list1, std::vector <int> list2)
{
std::vector <int> list3;
while(list1.size() > 0 && list2.size() > 0)
{
if(list1[0] > list2[0])
{
list3.push_back (list2[0]);
list2.erase (list2.begin());
}
else
{
list3.push_back (list1[0]);
list1.erase (list1.begin());
}
}
while(list1.size() > 0)
{
list3.push_back (list1[0]);
list1.erase (list1.begin());
}
while(list2.size() > 0)
{
list3.push_back (list2[0]);
list2.erase (list2.begin());
}
return list3;
}
int main()
{

}

我在第 16 行遇到错误,错误是:

No matching function for call to 'merge(std::vector<int>&, std::vector<int>&)

return merge(v2,v3); 是不是我做错了什么?

判断错误是不是跟带指针的东西有关?

我曾尝试声明为指针 vector 以查看是否可行,但它不可行。

最佳答案

C++ 和 C 一样,从上到下读取。在 mergesort 调用 merge 的地方,该函数不存在。反转实现或在 mergesort 之上声明 merge

关于c++ - 没有用于调用 'merge(std::vector<int>&, std::vector<int>&) 的匹配函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36990890/

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