2012-04-14 2 views
0

と罰金ではないおそらく超愚かな質問が、それは後半だ、私はほぼ準備ができて疲れやディナーよ....Cのベクトル++ 1つの方法への対応が、他

は、ここで私はそれがAとる持っ方法です以前にivarとして定義された別のベクトルにその値を代入します。あなたのパラメータが間違っていました

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

正確なエラーメッセージは何ですか? –

+0

こんにちは、ビルド上のコンパイラのメッセージです: 'insert'への呼び出しのための一致するメンバ関数がありません – Cocoadelica

答えて

1
void Symbol::setEncodedData(vector<int>* ec) 
{ 
    Symbol::encodedSymbol = *ec; 
} 

しかし、なぜポインタ引数を使用していますか?

void Symbol::setEncodedData(vector<int> const& ec) 
{ 
    Symbol::encodedSymbol = ec; 
} 
+0

私はC++を多用して以来ずっとずっとObj-Cを使っています。ポインタを渡していると思っていたのは、値渡しよりオーバーヘッドが少なかったと思います。 パラメータの&が意味するものは何ですか?値渡し?ちょうど私が間違っていたことと、あなたがコードしていることの両方が正しいことを理解したい。 – Cocoadelica

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 =を使用してコンテンツをコピーしてみませんか?

+0

re:operator =それは私の最初の考えでした:それは私に教えて:いいえ実行可能なオーバーロード '=' – Cocoadelica

+0

最後の例構文ライン、どのように配列の基礎となるベクトルの最初の要素に 'iterator position'を設定するのですか? – Cocoadelica

+0

@MightyLeaderあなたが何を意味するのか分かりません。あなたは何を達成しようとしていますか? 'encodedSymbol'とは何ですか? –

関連する問題