C++返回一个向量(将 int 转换为非标量类型)

C++ returning a vector (conversion of int to non-scalar type)

本文关键字:转换 标量 类型 int 向量 返回 一个 C++      更新时间:2023-10-16

我正在尝试用从 -1 开始的整数填充向量,直到我的 size 参数的负数。例如:如果参数为 6,那么我希望向量有 6 个项目,从 -1 到 -6。哦,如果大小参数小于 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;
}

函数的返回类型是 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;
}
/** 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();
}