C++之map的emplace與pair插入鍵值對用例(一百七十四)

簡介: CSDN博客專家,專注Android/Linux系統,分享多mic語音方案、音視頻、編解碼等技術,與大家一起成長!

優質專欄:Audio工程師進階系列原創干貨持續更新中……】🚀

人生格言: 人生從來沒有捷徑,只有行動才是治療恐懼和懶惰的唯一良藥.

更多原創,歡迎關注:Android系統攻城獅

歡迎關注Android系統攻城獅

1.前言

本篇目的:map成員函數emplace與pair用法區別。

2. std::map容器的emplace函數和pair類型使用區別

  • emplace函數是std::map容器特有的成員函數,用于在容器中插入新的鍵值對。它接受鍵和值的構造函數參數,并直接構造鍵值對對象,避免了臨時的pair對象的創建,從而提高了性能。
  • pair是一個模板結構體,定義了兩個成員變量firstsecond,分別表示鍵和值。可以使用std::make_pair函數或直接使用花括號初始化來創建pair對象,并將其插入到std::map容器中。

3.應用實例

<1>.容器map的成員函數使用emplace函數插入鍵值對

#include <iostream>
#include <map>int main() {// 使用emplace函數插入鍵值對std::map<int, std::string> myMap;myMap.emplace(std::make_pair(1, "Apple"));myMap.emplace(std::make_pair(2, "Banana"));// 遍歷第一個map容器for (const auto& pair : myMap) {std::cout << "Key: " << pair.first << ", Value: " << pair.second << std::endl;}return 0;
}

<2>.使用pair對象插入鍵值對

#include <iostream>
#include <map>
#include <utility>int main() {// 創建一個std::map<std::pair<int, int>>,鍵是std::pair,值是intstd::map<std::pair<int, int>, int> keyValueMap;// 向map中插入鍵值對keyValueMap.insert(std::make_pair(std::make_pair(1, 2), 100));keyValueMap.insert(std::make_pair(std::make_pair(3, 4), 200));keyValueMap.insert(std::make_pair(std::make_pair(5, 6), 300));// 遍歷map并輸出鍵值對for (const auto& kv : keyValueMap) {std::cout << "Key: (" << kv.first.first << ", " << kv.first.second << ")";std::cout << " Value: " << kv.second << std::endl;}return 0;
}

<3>.遍歷map中的key-value

int main() {std::map<string, string> mComponents;auto emplace = [&](const char *libPath) {mComponents.emplace(libPath, libPath);};// 添加元素到 mapemplace("libcodec2_soft_aacdec.so");emplace("libcodec2_soft_aacenc.so");emplace("libcodec2_soft_amrnbdec.so");emplace("libcodec2_soft_amrnbenc.so");emplace("libcodec2_soft_amrwbdec.so");emplace("libcodec2_soft_amrwbenc.so");//1.使用auto關鍵字遍歷for (const auto& kv : mComponents) {cout << "Key: " << kv.first << ", Value: " << kv.second << endl;}//2.使用iterator遍歷std::map<std::string, std::string>::iterator it;for (it = mComponents.begin(); it != mComponents.end(); ++it) {std::cout << "Key: " << it->first << ", Value: " << it->second << std::endl;}return 0;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/40746.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/40746.shtml
英文地址,請注明出處:http://en.pswp.cn/news/40746.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

213、仿真-基于51單片機智能電表電能表用電量電費報警Proteus仿真設計(程序+Proteus仿真+原理圖+配套資料等)

畢設幫助、開題指導、技術解答(有償)見文未 目錄 一、硬件設計 二、設計功能 三、Proteus仿真圖 四、原理圖 五、程序源碼 資料包括&#xff1a; 需要完整的資料可以點擊下面的名片加下我&#xff0c;找我要資源壓縮包的百度網盤下載地址及提取碼。 方案選擇 單片機的選…

uniapp tabbar 瀏覽器調試顯示 真機不顯示

解決方案&#xff0c;把tabBar里面的單位全改為px&#xff0c;rpx是不會顯示的&#xff01; 注意了&#xff0c;改完一定要重新運行&#xff0c;不然無效&#xff0c;坑爹 "tabBar": {"borderStyle": "black","selectedColor": &quo…

java-JVM內存區域JVM運行時內存

一. JVM 內存區域 JVM 內存區域主要分為線程私有區域【程序計數器、虛擬機棧、本地方法區】、線程共享區域【JAVA 堆、方法區】、直接內存。線程私有數據區域生命周期與線程相同, 依賴用戶線程的啟動/結束 而 創建/銷毀(在 HotspotVM 內, 每個線程都與操作系統的本地線程直接映…

SwiftUI 動畫進階:實現行星繞圓周軌道運動

0. 概覽 SwiftUI 動畫對于優秀 App 可以說是布帛菽粟。利用美妙的動畫我們不僅可以活躍界面元素,更可以單獨打造出一整套生動有機的世界,激活無限可能。 如上圖所示,我們用動畫粗略實現了一個小太陽系:8大行星圍繞太陽旋轉,而衛星們圍繞各個行星旋轉。 在本篇博文中,您將…

vue3實現防抖、單頁面引入、全局引入、全局掛載

文章目錄 代碼實現單頁面引入全局引入使用 代碼實現 const debounce (fn: any, delay: number) > {let timer: any undefined;return (item: any) > {if (timer) clearTimeout(timer);timer setTimeout(() > fn(item), delay);} };export default debounce;單頁面…

Python + Selenium 處理瀏覽器Cookie

工作中遇到這么一個場景&#xff1a;自動化測試登錄的時候需要輸入動態驗證碼&#xff0c;由于某些原因&#xff0c;需要從一個已登錄的機器上&#xff0c;復制cookie過來&#xff0c;到自動化這邊繞過登錄。 瀏覽器的F12里復制出來的cookie內容是文本格式的&#xff1a; uui…

【第二講---初識SLAM】

SLAM簡介 視覺SLAM&#xff0c;主要指的是利用相機完成建圖和定位問題。如果傳感器是激光&#xff0c;那么就稱為激光SLAM。 定位&#xff08;明白自身狀態&#xff08;即位置&#xff09;&#xff09;建圖&#xff08;了解外在環境&#xff09;。 視覺SLAM中使用的相機與常見…

VB+SQL銀行設備管理系統設計與實現

摘要 隨著銀行卡的普及,很多地方安裝了大量的存款機、取款機和POS機等銀行自助設備。銀行設備管理系統可以有效的記錄銀行設備的安裝和使用情況,規范對自助設備的管理,從而為用戶提供更加穩定和優質的服務。 本文介紹了銀行設備管理系統的設計和開發過程,詳細闡述了整個應…

Flink之Task解析

Flink之Task解析 對Flink的Task進行解析前,我們首先要清楚幾個角色TaskManager、Slot、Task、Subtask、TaskChain分別是什么 角色注釋TaskManager在Flink中TaskManager就是一個管理task的進程,每個節點只有一個TaskManagerSlotSlot就是TaskManager中的槽位,一個TaskManager中可…

數據結構單鏈表

單鏈表 1 鏈表的概念及結構 概念&#xff1a;鏈表是一種物理存儲結構上非連續、非順序的存儲結構&#xff0c;數據元素的邏輯順序是通過鏈表中的指針鏈 接次序實現的 。 在我們開始講鏈表之前&#xff0c;我們是寫了順序表&#xff0c;順序表就是類似一個數組的東西&#xff0…

上海虛擬展廳制作平臺怎么選,蛙色3DVR 助力行業發展

引言&#xff1a; 在數字化時代&#xff0c;虛擬展廳成為了企業宣傳的重要手段。而作為一家位于上海的實力平臺&#xff0c;上海蛙色3DVR憑借其卓越的功能和創新的技術&#xff0c;成為了企業展示和宣傳的首選。 一、虛擬展廳的優勢 虛擬展廳的崛起是指隨著科技的進步&#x…

36_windows環境debug Nginx 源碼-使用 VSCode 和WSL

文章目錄 配置 WSL編譯 NginxVSCode 安裝插件launch.json配置 WSL sudo apt-get -y install gcc cmake sudo apt-get -y install pcre sudo apt-get -y install libpcre3 libpcre3-dev sudo apt-get

手機商城網站的分析與設計(論文+源碼)_kaic

目錄 摘 要 1 1 緒論 2 1.1選題背景意義 2 1.2國內外研究現狀 2 1.2.1國內研究現狀 2 1.2.2國外研究現狀 3 1.3研究內容 3 2 網上手機商城網站相關技術 4 2.1.NET框架 4 2.2Access數據庫 4 2.3 JavaScript技術 4 3網上手機商城網站分析與設…

Grafana+Prometheus技術文檔-進階使用-監控spring-boot項目

阿丹&#xff1a; 之前已經實現了使用Prometheus來對服務器進行了監控和儀表盤的創建&#xff0c;現在就需要對這些監控方法使用在spring-boot中去。 實現思路&#xff1a; 1、集成Actuator 2、加入Prometheus的依賴 3、配置開放端口、以及開放監控 4、配置Prometheus中的配置…

一次網絡不通“爭吵“引發的思考

作者&#xff1a; 鄭明泉、余凱 為啥爭吵&#xff0c;吵什么&#xff1f; “你到底在說什么啊&#xff0c;我K8s的ecs節點要訪問clb的地址不通和本地網卡有什么關系…” 氣憤語氣都從電話那頭傳了過來&#xff0c;這時電話兩端都沉默了。過了好一會傳來地鐵小姐姐甜美的播報聲…

iview默認樣式覆蓋

scoped 屬性是 HTML5 中的新屬性。 當style標簽擁有scoped屬性時&#xff0c;它的css樣式只能用于當前的Vue組件&#xff0c;可以使組件的樣式不相互污染。 如果一個項目的所有style標簽都加上了scoped屬性&#xff0c;相當于實現了樣式的模塊化。 1、全頁面覆蓋 不添加scoped…

【一】ubuntu20.04上搭建containerd版( 1.2.4 以上)k8s及kuboard V3

k8s 部署全程在超級用戶下進行 sudo su本文請根據大綱順序閱讀&#xff01; 一、配置基礎環境&#xff08;在全部節點執行&#xff09; 1、安裝docker 使用apt安裝containerd 新版k8s已經棄用docker轉為containerd&#xff0c;如果要將docker改為containerd詳見&#xff1a…

對dubbo的DubboReference.check的參數進行剖析

背景 在使用dubbo的時候&#xff0c;發現當消費者啟動的時候&#xff0c;如果提供者沒有啟動&#xff0c;即使提供者后來啟動了&#xff0c;消費者也調不通提供者提供的接口了。 注冊中心使用都是nacos dubbo版本是3.0.4 例子 接口 public interface DemoService {String…

“深入解析JVM內部機制:探秘Java虛擬機的奧秘“

標題&#xff1a;深入解析JVM內部機制&#xff1a;探秘Java虛擬機的奧秘 摘要&#xff1a;本文將深入解析JVM&#xff08;Java虛擬機&#xff09;的內部機制&#xff0c;從字節碼執行到垃圾回收&#xff0c;逐步揭示Java程序運行的奧秘。通過理論分析和示例代碼&#xff0c;讀…

thinkphp5.1 trace 不顯示sql語句

config/app.php app_debug > true,//線上環境為 false // 應用Trace app_trace > true,//線上環境為 false config/database.php debug > true, config/log.php close > false, thinkphp5.1x 設計非常奇怪 必須開啟…