我怎么能修复错误:转换,从“无效”非标型“的std ::矢量”要求
问题描述:
我得到一个错误这样的:我怎么能修复错误:转换,从“无效”非标型“的std ::矢量<int>”要求
conversion from ‘void’ to non-scalar type ‘std::vector<int>’ requested
这个功能我得到这个错误from:
vector<int> concat(vector<int> vector1, vector<int> vector2)
{
return vector1.insert(vector1.end(), vector2.begin(), vector2.end());
}
我使用了算法库中的insert()函数。
答
方法insert
返回迭代器。
它具有以下声明
template <class InputIterator>
iterator insert(const_iterator position,
InputIterator first, InputIterator last);
功能接口不符合逻辑的。
要么声明该函数通过以下方式
std::vector<int> & concat(std::vector<int> &vector1, const std::vector<int> &vector2)
{
vector1.insert(vector1.end(), vector2.begin(), vector2.end());
return vector1;
}
或以下方式
std::vector<int> concat(const std::vector<int> &vector1, const std::vector<int> &vector2)
{
std::vector<int> result(vector1);
result.insert(result.end(), vector2.begin(), vector2.end());
return result;
}
提示:'的std ::矢量 :: iterator'是不相同的类型'STD: :矢量'。 –
user0042