2017-10-04 16 views
-2

私はかなり新しいC++です。同じタイプのベクトルにオブジェクトを挿入できません

私はクラスXMLItemを持っています。

私は

my_vect.insert(the_item); 
でmy_vectにthe_item挿入しようとすると、私はしかし、

vector<XMLItem> my_vect; 

でXMLItemsを保持するベクトルを作成

XMLItem the_item = XMLItem(params...); 

によってクラスXML項目のインスタンスを作成します

次の出力エラーが発生します。

error: no matching function for call ‘std::vector<XMLItem>::insert(XMLItem&)’ 

私はXMLItem型のオブジェクトへの参照を挿入しようとしていると不平を言っているようですが、なぜそうであるのかわかりません。 C++でオブジェクトを初期化することについて私が誤解していることはありますか?

+0

http://en.cppreference.com/w/cpp/container/vector/insert – juanchopanza

答えて

1

std::vector::insert()は、コンテナの指定された場所に要素を挿入します。あなたは位置を指定する必要があります。 のオーバーロードはありません。なぜなら、コンパイラがエラーを出す理由の1つの引数しかないからです。ポジションを指定しない場合は、push_back()またはemplace_back()を使用してください。

1

insert操作には位置が必要です。あなたのケースでポジションが重要でない場合は、emplace_back(C++ 11)またはpush_backを使用することができます。

関連する問題