可能是一个极其愚蠢的问题,但现在已经很晚了,我已经累了,晚餐已经准备好了....
这是我有一个方法,它接受一个向量并将其中的值分配给另一个先前定义为ivar的向量。 问题是它在最后一个方法调用上抛出一个错误:没有匹配的成员函数来调用'insert'
这是代码,火焰:
void Symbol::setEncodedData( vector<int>* ec )
{
Symbol::encodedSymbol.clear( );
Symbol::encodedSymbol.resize( ec->size( ) );
Symbol::encodedSymbol.insert( 0, ec->begin( ), ec->end( ) );
}
答案 0 :(得分:2)
您的参数错误,0
不是有效的迭代器。可能的候选人是:
iterator insert ( iterator position, const T& x );
void insert ( iterator position, size_type n, const T& x );
template <class InputIterator>
void insert ( iterator position, InputIterator first, InputIterator last );
为什么不简单地使用operator =
复制内容?
答案 1 :(得分:1)
void Symbol::setEncodedData( vector<int>* ec )
{
Symbol::encodedSymbol = *ec;
}
但是你为什么要使用指针参数?
void Symbol::setEncodedData(vector<int> const& ec)
{
Symbol::encodedSymbol = ec;
}