我正在尝试使用以-1开头的整数填充向量,直到我的size参数为负。例如:如果参数是6,那么我希望向量有6个项目,从-1到-6。哦,如果size参数小于1,我想返回一个空参数。
我收到“从'int'转换为非标量类型”错误消息。据我所知,这是很好的代码,但显然我无法弄明白。任何帮助表示赞赏。
#include <iostream>
#include <vector>
int negativity(int size) {
std::vector<int> vect;
if (size < 1) {
return vect;
}
for (int i=-1; i > size; i--) {
vect.push_back(i);
}
return vect;
}
答案 0 :(得分:5)
您的函数的返回类型为int
,但您将返回std::vector<int>
。
这应该可以纠正编译错误。
#include <iostream>
#include <vector>
std::vector<int> negativity(int size) {
std::vector<int> vect;
if (size < 1) {
return vect;
}
for (int i=-1; i > size; i--) {
vect.push_back(i);
}
return vect;
}
答案 1 :(得分:1)
/** other implementation;
- Usage of an argument to avoid duplication of copying object.
*/
size_t negativity(std::vector<int>& vResult, const unsigned int uiHowmany)
{
vResult.clear();
for(unsigned int i=1; i < uiHowmany; ++i)
{
vResult.push_back((-1)*i);
}
return vResult.size();
}