久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

std::map emplace 不復制值

std::map emplace without copying value(std::map emplace 不復制值)
本文介紹了std::map emplace 不復制值的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

C++11 std::map<K,V> 類型有一個 emplace 函數,許多其他容器也是如此.

The C++11 std::map<K,V> type has an emplace function, as do many other containers.

std::map<int,std::string> m;

std::string val {"hello"};

m.emplace(1, val);

此代碼如宣傳的那樣工作,直接替換 std::pair,但它會生成 keyval<的副本/code> 正在發(fā)生.

This code works as advertised, emplacing the std::pair<K,V> directly, however it results in a copy of key and val taking place.

是否也可以將值類型直接嵌入到地圖中?我們能比將調用中的參數移動到 emplace 做得更好嗎?

Is it possible to emplace the value type directly into the map as well? Can we do better than moving the arguments in the call to emplace?

這是一個更全面的例子:

Here's a more thorough example:

struct Foo
{
   Foo(double d, string s) {}
   Foo(const Foo&) = delete;
   Foo(Foo&&) = delete;
}

map<int,Foo> m;
m.emplace(1, 2.3, string("hello")); // invalid

推薦答案

你傳遞給 map::emplace 的參數會被轉發(fā)給 map::value_type 的構造函數, 即 pair.所以你可以使用 std::pair 的 分段構造構造函數避免中間復制和移動.

The arguments you pass to map::emplace get forwarded to the constructor of map::value_type, which is pair<const Key, Value>. So you can use the piecewise construction constructor of std::pair to avoid intermediate copies and moves.

std::map<int, Foo> m;

m.emplace(std::piecewise_construct,
          std::forward_as_tuple(1),
          std::forward_as_tuple(2.3, "hello"));

現場演示

這篇關于std::map emplace 不復制值的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Assertion failed (size.widthgt;0 amp;amp; size.heightgt;0)(斷言失敗(size.width0 amp;amp; size.height0))
Rotate an image in C++ without using OpenCV functions(在 C++ 中旋轉圖像而不使用 OpenCV 函數)
OpenCV: process every frame(OpenCV:處理每一幀)
Why can#39;t I open avi video in openCV?(為什么我不能在 openCV 中打開 avi 視頻?)
OpenCV unable to set up SVM Parameters(OpenCV 無法設置 SVM 參數)
Convert a single color with cvtColor(使用 cvtColor 轉換單一顏色)
主站蜘蛛池模板: 亚洲色图在线观看 | 国产精品久久免费观看 | 福利视频网站 | 午夜精品一区二区三区在线视 | 亚洲视频在线一区 | 中文字幕av亚洲精品一部二部 | 99久久99久久精品国产片果冰 | 欧美黑人国产人伦爽爽爽 | 久久亚 | 伊人艹 | 看av片网站| 天天曰天天曰 | 九色av| 成人av资源在线 | 黄 色 毛片免费 | 一区二区三区亚洲 | 一区二区三区免费 | 精品九九 | 国内自拍偷拍视频 | 一级久久久久久 | 盗摄精品av一区二区三区 | 一级黄色片一级黄色片 | 中文字幕日韩欧美 | www九色| 午夜精品久久久久久久久久久久久 | 美女精品一区 | 亚洲天堂精品一区 | 欧美激情久久久 | 国产99久久精品一区二区永久免费 | 日本高清不卡视频 | 中文字幕免费 | 激情在线视频网站 | 中文一区二区 | 台湾a级理论片在线观看 | 亚洲国产成人精品在线 | 亚洲一区二区日韩 | 亚洲高清免费视频 | 久久99视频免费观看 | 免费三级黄| 久久久蜜桃| 亚洲国产精品精华素 |