使用C++ Map實現快速查找 小藍 • 2024-12-24 03:01 • 編程一、Map簡介Map是C++標準庫提供的一種關聯容器,可以進行快速的鍵值對查找。Map底層是使用紅黑樹實現的,可以保證插入、刪除、查找的時間複雜度都是O(log n)。Map的使用方法類似於數組,但是可以使用任意類型作為Key,而且不需要提前設定數組大小。下面將詳細介紹使用Map實現快速查找的過程。二、Map使用方法使用Map需要包含頭文件,然後定義一個Map對象。Map對象的定義方式如下: map Map名稱; 其中鍵類型指的是Map中鍵(Key)的數據類型,值類型指的是Map中值(Value)的數據類型。下面是一個例子,定義了一個將字元串映射成整數的Map: map str2int; 三、Map的插入操作Map的插入操作使用insert()函數,插入的數據以鍵值對(Key-Value)的方式給出,具體語法如下: Map名稱.insert(pair(鍵值, 值)); 其中pair是C++標準庫提供的對鍵值對進行打包的模板類,可以將兩個數據打包為一個整體進行處理。下面是一個例子,將字元串和整數打包成為一個鍵值對並插入到Map中: str2int.insert(pair("apple",1)); str2int.insert(pair("banana",2)); str2int.insert(pair("orange",3)); 四、Map的查找操作Map的查找操作使用find()函數,給出一個鍵(Key)的值,返回一個指向對應值(Value)的迭代器。如果鍵不存在,則返回指向Map末尾的迭代器(end())。下面是一個例子,查找字元串”apple”對應的整數值: map::iterator it= str2int.find("apple"); if (it!=str2int.end()){ cout << "apple對應的整數值是:"<second << endl; } else { cout << "查找失敗" << endl; } 輸出結果為: apple對應的整數值是:1 五、實例:用Map實現快速查找現有10萬個手機號碼,要進行快速的查詢。可以將手機號碼存儲在Map中,以手機號碼作為鍵(Key),以用戶信息作為值(Value)進行存儲。下面是一個例子,將一些用戶信息存儲到Map中,然後根據手機號碼進行查找: #include #include #include using namespace std; struct UserInfo { string name; int age; string address; }; int main() { map phonebook; phonebook.insert(pair("15512345678", {"Tom", 21, "Beijing"})); phonebook.insert(pair("15687654321", {"Jerry", 23, "Shanghai"})); phonebook.insert(pair("15900001111", {"Lucy", 22, "Guangzhou"})); phonebook.insert(pair("13188889999", {"Lily", 20, "Chongqing"})); string phone; cout <> phone; map::iterator it= phonebook.find(phone); if (it!=phonebook.end()){ cout <second.name << " " <second.age << "歲" <<endl; cout << "地址是:" <second.address << endl; } else { cout << "查無此人" << endl; } return 0; } 原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/288957.htmlmap快速查找 贊 (0) 打賞 微信掃一掃 支付寶掃一掃 小藍 0 0 生成海報 ruoyi-flowable-plus:讓你的流程更加高效 上一篇 2024-12-24 03:01 java構造塊與靜態塊,java中靜態塊的作用 下一篇 2024-12-24 03:01相關推薦 Python快速查找演算法 本文將從幾個方面介紹Python中常用的查找演算法,包括線性查找、二分查找、哈希表查找和樹形查找。 一、線性查找 線性查找演算法是一種基本的查找演算法,在一個未排序的列表中查找指定元素。… PRYSN 編程 2025-04-27 Python快速查找元素 本篇文章將介紹如何使用Python快速查找元素。在Python中,我們可以使用多種工具實現對元素的查找,包括XPath、CSS選擇器和正則表達式等。下面我們將從不同的角度,分別介紹… KFMPO 編程 2025-04-27 深入解析map遍歷刪除 一、概述 map是C++ STL中用於映射鍵值對的容器,具有一些方便的操作,如insert、find、count等。然而,如果需要根據某些條件刪除元素,就需要遍歷整個map,找到需… XWMJI 編程 2025-04-25 Java Map containsKey方法詳解 一、containsKey方法簡介 containsKey方法是Java Map介面中的方法之一,用於判斷Map集合中是否包含某個指定的key,方法返回一個boolean類型值。如… IAMEE 編程 2025-04-24 JS Map刪除元素詳解 一、JS刪除DOM元素 在前端開發中,動態地刪除DOM元素是一項常見操作。通過JavaScript,我們可以輕鬆地以編程方式刪除HTML頁面上的元素,從而實現頁面的動態更新。下面是… GUOQG 編程 2025-04-24 mapreduce.map.java.opts 一、基本概念 mapreduce.map.java.opts是Hadoop中MapReduce框架中的一個重要的參數,它用於控制map任務中Java虛擬機(JVM)的參數。通常情況… SOBKC 編程 2025-04-24 深入理解map轉換為json字元串 一、map轉換為json字元串 Map是一種鍵值對的數據結構,可以存儲任意類型的對象。在Java中,我們可以將一個Map對象轉換成一個JSON字元串,這個JSON字元串可以用於數據… PCYLE 編程 2025-04-23 深入解析Map和FlatMap 一、Map和FlatMap的基本概念 Map和FlatMap是函數式編程裡面非常重要的兩個概念,它們可以處理一些複雜的數據結構。Map是指對一個數組或者列表的每個元素都執行一定的操… LZWDR 編程 2025-04-23 詳解map轉對象 一、基礎概念 Map是一種鍵值對的數據結構,它是Java中非常常用的數據類型,尤其是在開發中常用於將JSON字元串轉化為對象。Object則是Java中的一個基礎數據類型,它是所有… YECJS 編程 2025-04-23 c++ map排序詳解 一、基本介紹 map是c++語言中的一個關聯數組容器,可以在一個鍵和值之間建立一種映射關係。其中,鍵是唯一的,值可以重複。同時,map中的元素是按鍵自動排序的,排序方式可以通過自定… OYDLN 編程 2025-04-23 發表回復 請登錄後評論...登錄後才能評論 提交