c++ - 我该如何修复错误 : conversion from ‘void’ to non-scalar type ‘std::vector<int>’ requested

标签 c++ vector insert iterator g++

我收到这样的错误:

conversion from ‘void’ to non-scalar type ‘std::vector<int>’ requested

这是一个函数,我从中得到这个错误:

   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);

函数接口(interface)逻辑不一致

要么通过以下方式声明函数

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;
}

关于c++ - 我该如何修复错误 : conversion from ‘void’ to non-scalar type ‘std::vector<int>’ requested,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46755798/

相关文章:

c++ - vector.back() 和 vector.end() 有什么区别?

c++ - 如何在不复制的情况下将 std::vector<unsigned char> 转换为 vector<char>?

c++ - 如何在 C++ 中为 MPL vector 的所有成员显式实例化模板?

c++ - 一种独特的数据转换类型

c++ - C fmod 函数 : Floating point error and optimization

c++ - vector 均匀切片的算法

string - 如何在 XQuery 中的一定数量的字符串字符后插入字符串?

haskell - 在 Haskell 中实现二叉搜索树插入

php - 从 Laravel 5 中的一种形式插入不同的表

c++ - CMake 只接受 add_subdirectory 中的 `find_package(Qt5Widgets REQUIRED)`,而不是根项目