mapped_typeのr値移動によるマップエントリの挿入

私は(かなり)シンプルなキー型と複雑なマップ型を持つマップを持っています:

map> myMap;

If I have a vector in hand, is it possible to insert an entry into the map which copies the key but moves the mapped-value? That is, is there some way to do:

string key = "Key";
vector mapped;
for (int i = 0; i < 1000; ++i)
  mapped.push_back("Some dynamic string");

// Insert by moving mapped; I know I'm done with it
myMap.insert(make_pair(key, move(mapped)));//This seems to move key too
7
nl ru de
問題は、マップされた型をどこに移動するのですか?以前に作成していないかぎり、マップには存在しません。
追加された 著者 Tony The Lion,
@TonyTheLion - vector には移動コンストラクタがあります。マップ内の pair が、そのベクトル部分をmoveによって構築されるようにしたいと思います。
追加された 著者 Chowlett,
@billz - 何、メモリalloc-deallocを手動で対処するのですか?結構です。 mapped がスコープ外になってからずっと myMap を参照しています。
追加された 著者 Chowlett,
@billz: vector と同じように、 unique_ptr をマップに移動するのとまったく同じ問題が発生します。あなたが得たのは、余分な合併症の層です。
追加された 著者 Mike Seymour,
@MikeSeymourしかし、unique_ptrはコピーを許可しないので、要素はコピーされずに移動されることはありません。この場合、偶発的なコピーを避けるためには、移動のみのベクトルが最適です。
追加された 著者 Arne Mertz,
マップ値としてポインタを使用するほうが簡単でしょうか?
追加された 著者 billz,
map >> myMap 、手動でallocallocを行う必要はありません
追加された 著者 billz,