0

おそらく非常にばかげた質問ですが、遅くなりました。疲れていて、夕食の準備がほぼ整っています....

これは、ベクトルを取り、その値を以前に ivar として定義された別のベクトルに割り当てるメソッドです。問題は、最後のメソッド呼び出しでエラーがスローされることです。「挿入」の呼び出しに一致するメンバー関数はありません

コードは次のとおりです。

void Symbol::setEncodedData( vector<int>* ec )
{
Symbol::encodedSymbol.clear( );
Symbol::encodedSymbol.resize( ec->size( ) );
Symbol::encodedSymbol.insert( 0, ec->begin( ), ec->end( ) );
}
4

2 に答える 2

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 =内容をコピーするために使用してみませんか?

于 2012-04-14T19:19:06.733 に答える
1
void Symbol::setEncodedData( vector<int>* ec )
{
    Symbol::encodedSymbol = *ec;
}

しかし、なぜポインター引数を使用しているのですか?

void Symbol::setEncodedData(vector<int> const& ec)
{
    Symbol::encodedSymbol = ec;
}
于 2012-04-14T20:14:01.437 に答える