【C++】set與map

目錄

一、鍵值對

二、set

1. set的模板參數列表

2. set的構造

3. set的迭代器

4. set的容量

5. set的修改

6. set的查找

三、map

?1. map的模板參數列表

2. map的構造

3. map的迭代器

4. map的容量

5. map的修改

6. map的查找


一、鍵值對

用來表示具有一一對應關系的一種結構,該結構中一般只包含兩個成員變量key和value,key代 表鍵值,value表示與key對應的信息。比如:現在要建立一個英漢互譯的字典,那該字典中必然 有英文單詞與其對應的中文含義,而且,英文單詞與其中文含義是一一對應的關系,即通過該應 該單詞,在詞典中就可以找到與其對應的中文含義。

SGI-STL中關于鍵值對的定義:

template <class T1, class T2>struct pair 
{typedef T1 first_type;typedef T2 second_type;T1 first;T2 second;pair(): first(T1()), second(T2()){}pair(const T1& a, const T2& b): first(a), second(b){}};

?

二、set

  • set是按照一定次序存儲元素的容器
  • 在set中,元素的value也標識它(value就是key,類型為T),并且每個value必須是唯一的。 set中的元素不能在容器中修改(元素總是const),但是可以從容器中插入或刪除它們。
  • 在內部,set中的元素總是按照其內部比較對象(類型比較)所指示的特定嚴格弱排序準則進行 排序。
  • set容器通過key訪問單個元素的速度通常比unordered_set容器慢,但它們允許根據順序對 子集進行直接迭代。
  • set在底層是用二叉搜索樹(紅黑樹)實現的。

?

1. set的模板參數列表

T: set中存放元素的類型,實際在底層存儲的鍵值對。

Compare:set中元素默認按照小于來比較

Alloc:set中元素空間的管理方式,使用STL提供的空間配置器管理 ?

2. set的構造

3. set的迭代器

?

4. set的容量

5. set的修改

6. set的查找

?

三、map

  • map是關聯容器,它按照特定的次序(按照key來比較)存儲由鍵值key和值value組合而成的元 素。
  • 在map中,鍵值key通常用于排序和惟一地標識元素,而值value中存儲與此鍵值key關聯的 內容。鍵值key和值value的類型可能不同,并且在map的內部,key與value通過成員類型 value_type綁定在一起,為其取別名稱為pair: typedef pair value_type;
  • 在內部,map中的元素總是按照鍵值key進行比較排序的。
  • map中通過鍵值訪問單個元素的速度通常比unordered_map容器慢,但map允許根據順序 對元素進行直接迭代(即對map中的元素進行迭代時,可以得到一個有序的序列)。
  • map支持下標訪問符,即在[]中放入key,就可以找到與key對應的value。
  • map通常被實現為二叉搜索樹(更準確的說:平衡二叉搜索樹(紅黑樹))。

?

?1. map的模板參數列表

key: 鍵值對中key的類型

T: 鍵值對中value的類型

Compare: 比較器的類型,map中的元素是按照key來比較的,缺省情況下按照小于來比較,一般情況下(內置類型元素)該參數不需要傳遞,如果無法比較時(自定義類型),需要用戶自己顯式傳遞比較規則(一般情況下按照函數指針或者仿函數來傳遞)

Alloc:通過空間配置器來申請底層空間,不需要用戶傳遞,除非用戶不想使用標準庫提供的 空間配置器

2. map的構造

?

3. map的迭代器

4. map的容量

5. map的修改

6. map的查找

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

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

相關文章

SARscape5.7已經支持3米陸探一號(LT-1)數據處理

SARsacpe5.6.2.1版本已經開始支持LT-1的數據處理&#xff0c;由于當時只獲取了12米的條帶模式2&#xff08;STRIP2&#xff09;例子數據&#xff0c;對3米條帶模式1&#xff08;STRIP1&#xff09;數據的InSAR處理軌道誤差挺大&#xff0c;可能會造成干涉圖異常。 SARsacpe5.7最…

三十篇:動脈脈搏:企業業務處理系統的生命力

動脈脈搏&#xff1a;企業業務處理系統的生命力 1. 引言 在數字經濟的浪潮下&#xff0c;企業之間的競爭已不僅僅是產品和服務的競爭&#xff0c;更是信息處理能力的競爭。業務處理系統&#xff08;Transaction Processing System, TPS&#xff09;是企業信息系統架構的基礎&a…

Python3 筆記:Python之禪

打開Python Shell&#xff0c;輸入import this&#xff0c;按回車鍵運行程序。 Beautiful is better than ugly. 優雅勝于丑陋。 Explicit is better than implicit. 明確勝于含糊。 Simple is better than complex. 簡單勝于復雜。

圖形學初識--紋理采樣和Wrap方式

文章目錄 前言正文1、為什么需要紋理采樣&#xff1f;2、什么是紋理采樣&#xff1f;3、如何進行紋理采樣&#xff1f;&#xff08;1&#xff09;假設繪制區域為矩形&#xff08;2&#xff09;假設繪制區域為三角形 4、什么是紋理的Wrap方式&#xff1f;5、有哪些紋理的Wrap方式…

洪師傅代駕系統開發 支持公眾號H5小程序APP 后端Java源碼

代駕流程圖 業務流程圖 管理端設置 1、首頁裝修 2、師傅獎勵配置 師傅注冊后,可享受后臺設置的新師傅可得的額外獎勵; 例:A注冊了師傅,新人獎勵可享受3天,第一天的第一筆訂單完成后可得正常傭金傭金*獎勵比例 完成第二筆/第三筆后依次可得正常傭金傭金*獎勵比例 完成的第四…

牛客NC166 連續子數組的最大和(二)【中等 前綴和數組+動態規劃 Java/Go/PHP/C++】

題目 題目鏈接&#xff1a; https://www.nowcoder.com/practice/11662ff51a714bbd8de809a89c481e21 思路 前綴和數組動態規劃Java代碼 import java.util.*;public class Solution {/*** 代碼中的類名、方法名、參數名已經指定&#xff0c;請勿修改&#xff0c;直接返回方法規…

小短片創作-優化場景并輸出短片(二)

1、什么是潮濕感 什么是潮濕感&#xff1a;基礎顏色變化粗糙度變化表面滲入性 1.基礎顏色變化&#xff1a;潮濕的地方顏色會變深 2.粗糙度變化&#xff1a;鏡面粗糙度為0&#xff0c;潮濕的地方粗糙度會變低 3.表面滲入性&#xff1a;主要看材質是否防水 2、調整場景材質增…

小抄 20240526

1 一些人焦慮的原因&#xff0c;可能是他也知道自己做的事無意義&#xff0c;但是又停不下來&#xff0c;于是一直在做無用功&#xff0c;空耗精神力量。 可以試著去做一些熱愛的、有價值的事情&#xff0c;焦慮就會慢慢消失。 2 人們看歷史的時候&#xff0c;很容易把自己代…

士大夫v產生的

一、前言 亂碼七糟 [lun qī bā zāo]&#xff0c;我時常懷疑這個成語是來形容程序猿的&#xff01; 無論承接什么樣的需求&#xff0c;是不是身邊總有那么幾個人代碼寫的爛&#xff0c;但是卻時常有測試小姐姐過來聊天(_求改bug_)、有產品小伙伴送吃的(_求寫需求_)、有業務小…

Java 寫入 influxdb

利用Python隨機生成一個1000行的csv文件 import csv import random from datetime import datetime, timedelta from random import randint, choice# 定義監控對象列表和指標名稱列表 monitor_objects [Server1, Server2, Server3, DB1] metric_names [CPUUsage, MemoryUsa…

網絡編程 —— Http進度條

第一種下載帶進度的方法 string url "https://nodejs.org/dist/v20.10.0/node-v20.10.0-x64.msi"; 1使用getASync獲取服務器響應數據 參數1請求的路徑&#xff0c; 參數2 HttpCompletionOption.ResponseHeadersRead 請求完成時候等待請求帶什么程度才…

耐高溫輸送帶的優勢

耐高溫輸送帶&#xff1a;工業運輸的革命性升級&#xff0c;助力生產線高效穩定運行 在現代化工業生產的浪潮中&#xff0c;耐高溫輸送帶以其獨特的優勢&#xff0c;正逐漸成為工業運輸領域的得力助手。它不僅能夠有效提升生產效率&#xff0c;更能確保生產線的安全穩定運行&a…

算法隨想錄第二十天打卡|654.最大二叉樹 , 617.合并二叉樹 ,700.二叉搜索樹中的搜索 , 98.驗證二叉搜索樹

654.最大二叉樹 又是構造二叉樹&#xff0c;昨天大家剛剛做完 中序后序確定二叉樹&#xff0c;今天做這個 應該會容易一些&#xff0c; 先看視頻&#xff0c;好好體會一下 為什么構造二叉樹都是 前序遍歷 題目鏈接/文章講解&#xff1a;代碼隨想錄 視頻講解&#xff1a;又是構…

「動態規劃」打家劫舍

力扣原題鏈接&#xff0c;點擊跳轉。 有一個小偷&#xff0c;要偷東西。假設有n個房間&#xff0c;每個房間都有現金&#xff0c;下標為i的房間內的現金數是nums[i]。不能同時偷相鄰的2個房間&#xff0c;其中第一個房間和最后一個房間是相鄰的。那么這個小偷最多能偷到多少現…

YOLOv8+PyQt5鳥類檢測系統完整資源集合(yolov8模型,從圖像、視頻和攝像頭三種路徑識別檢測,包含登陸頁面、注冊頁面和檢測頁面)

資源包含可視化的鳥類檢測系統&#xff0c;基于最新的YOLOv8訓練的鳥類檢測模型&#xff0c;和基于PyQt5制作的可視化鳥類檢測系統&#xff0c;包含登陸頁面、注冊頁面和檢測頁面&#xff0c;該系統可自動檢測和識別圖片或視頻當中出現的各種鳥類&#xff0c;以及自動開啟攝像頭…

Linux漢化Jupyter Notebook

要在Linux系統中使Jupyter Notebook漢化&#xff0c;可以通過安裝jupyterlab-language-pack-zh-CN擴展來實現。以下是具體步驟和示例代碼&#xff1a; 打開終端。 執行以下命令以安裝Jupyter Notebook的中文語言包&#xff1a; pip install jupyterlab-language-pack-zh-CN …

【CSharp】將ushort數組保存為1通道位深16bit的Tiff圖片

【CSharp】將ushort數組保存為1通道位深16bit的Tiff圖片 1.背景2.接口 1.背景 System.Drawing.Common 是一個用于圖像處理和圖形操作的庫&#xff0c;它是 System.Drawing 命名空間的一部分。由于 .NET Core 和 .NET 5 的跨平臺特性&#xff0c;許多以前內置于 .NET Framework…

基于Fluent和深度學習算法驅動的流體力學計算與應用

“基于Fluent和深度學習算法驅動的流體力學計算與應用”專題大綱 目錄 主要內容 機器學習與流體力學入門 一、流體力學基礎理論與編程實戰1、流體力學的發展概述 2、不可壓縮流體力學的基本方程 3、湍流理論與湍流模型簡介 4、傅里葉變換和流體的尺度分析 5、偽譜法求解不可壓…

Vue小程序項目知識積累(二)

1.wx.reLaunch(Object object) 關閉所有頁面&#xff0c;打開到應用內的某個頁面。 wx.reLaunch({url:/pages/positons/index}) 參數說明&#xff1a; 屬性類型默認值必填說明urlstring是需要跳轉的應用內頁面路徑 (代碼包路徑)&#xff0c;路徑后可以帶參數。參數與路徑之…

微信小程序上傳包過大的最全解決方案!

微信小程序的發布大小限制是2MB。然而一個程序怎么能這么小&#xff1f; 介紹一下項目中的經驗。 新項目 如果是剛開始做的新項目&#xff0c;一定確定好自己要用的Ui框架&#xff0c;而且確定之后&#xff0c;千萬不要引入別的&#xff0c;否則占大小&#xff01;&#xff0…