这是我的函数将十进制数字更改为二进制数字,似乎最后一句话有一些问题。我知道我可以创建一个静态向量来解决问题,但我不想这样做。我如何附加一个向量作为递归函数的返回对象?
vector<int> tenchangetwo(int num)
{
int i = num/2;
int j = num%2;
if(i==0)return vector<int>{j};
else return tenchangetwo(i).push_back(j);
}
第6行:无法转换&lt; tenchangetwo(int)()。std :: vector&lt; _Tp,_Alloc&gt; :: push_back&gt;(j)&#39;来自&#39; void&#39;到&#39; std :: vector&#39;
答案 0 :(得分:3)
最好的方法是首先声明最后要返回的变量。
vector<int> tenchangetwo(int num)
{
vector<int> v;
int i = num/2;
int j = num%2;
if(i > 0) v = tenchangetwo(i);
v.push_back(j);
return v;
}
这使您的功能更清洁,更有效。