2017-10-15 69 views
-1

我得到一個錯誤這樣的:我怎麼能修復錯誤:轉換,從「無效」非標型「的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()函數。

+1

提示:'的std ::矢量 :: iterator'是不相同的類型'STD: :矢量'。 – user0042

回答

1

方法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; 
} 
相關問題