久久久久久久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> 正在發生.

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 的參數會被轉發給 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 轉換單一顏色)
主站蜘蛛池模板: 日本久久网 | 亚洲精品1 | 亚洲社区在线 | 米奇成人网 | 亚洲视频在线一区 | a级性视频 | 国外成人在线视频 | 亚洲成av片人久久久 | 91亚洲精品国偷拍自产在线观看 | 九九精品网 | 亚洲国产精品视频 | 亚洲天堂成人在线视频 | 亚洲日本激情 | 成人三级在线播放 | 日日干干夜夜 | 亚洲乱码一区二区三区在线观看 | 亚洲一区二区视频在线播放 | 日韩高清中文字幕 | 国产精品欧美一区二区三区不卡 | 波多野结衣精品 | 国产人久久人人人人爽 | 欧美综合一区 | 蜜月aⅴ国产精品 | 国产精品久久久久aaaa樱花 | 国产成人精品一区二区三 | 成年人免费在线视频 | 欧美日韩精品中文字幕 | 91综合网 | 中文字幕一区二区在线观看 | 91视频三区| 日韩高清国产一区在线 | 91网在线播放 | 精品91视频 | 欧美视频一区二区三区 | 911网站大全在线观看 | 国精品一区 | 91精品久久久久 | 一区二区三区中文字幕 | 国内91在线| 在线观看亚洲一区二区 | 久久精品国产a三级三级三级 |