移動元ベクトルは常に空ですか?
質問:
それは知られています標準ライブラリ タイプのオブジェクトは移動元にできますが、移動操作では移動元のオブジェクトが未指定の状態のままになる可能性があります。これにベクトルを除く明示的な要件はありません。しかし、移動元ベクトルが空でない状態になることはどのようにして可能でしょうか?
答え:
一般に、移動元ベクトルは空になります。ただし、常にそうとは限りません。
特定ケース:
移動元ベクトルの動作は、使用される操作 (移動コンストラクターまたは移動代入) と、ベクトルに関連付けられたアロケーターによって異なります。
移動コンストラクター:
vector(vector&& v)
この場合、移動元ベクトルは常に空になります。移動操作は一定の複雑さを必要とし、あるベクトルから別のベクトルに所有権を移す必要があり、前者を空のままにします。
移動割り当て:
vector& 演算子=(vector&& v)
次の 3 つのシナリオがあります。以下を考慮してください:
実装によっては、この中の移動元ベクトルを明示的にクリアすることを選択する場合があることに注意してください。シナリオですが、必須ではありません。
以上が移動元ベクトルが空でない場合は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。