2017-07-18 10 views

答えて

4

Aが移動-からオブジェクトもはや使用する必要があります。

あなたが主張しているのであれば、それが以前は空であったかどうかに関わらず、実際に空のコンテナを残すことに気付くでしょう(これは標準では定義されていません)。挿入すると、fooには1つの要素が含まれます。

あなたのようになりますようなコードを書くためのより正常な方法:すべての

bar.swap(foo); 
foo.clear(); 
foo.insert(0); 

What can I do with a moved-from object?

+0

'clear'メンバ関数の呼び出しの後でも? – FrozenHeart

+0

@FrozenHeart:あなたの文章を完了できますか? –

+0

'clear'コールの後に移動元のコンテナを使用できますか? – FrozenHeart

3

まず、あなたは常にセットにを挿入することができます。インサートは前提条件(例えば、消去とは異なる)を持たないので、要素が移動され、クリアされ、要素で満たされる。

しかし:あなたが移動後clearを呼び出さない場合は移動後、fooが有効であるため、新たに挿入された要素は、setの唯一の要素になりますならば、あなたは知らないが、不特定状態。したがって、移動後にclearに電話して新しい要素を挿入するだけでなく、ほとんどの状況でになるはずです(他の要素が何であるか気にしない限り)。

関連する問題