最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++中使用哈希表(unordered_map)的一些常用操作方法

 更新時(shí)間:2022年03月11日 11:26:25   作者:hero_th  
C++標(biāo)準(zhǔn)庫中使用的unordered_map底層實(shí)現(xiàn)是哈希表,下面這篇文章主要給大家介紹了關(guān)于C++中使用哈希表(unordered_map)的一些常用操作方法,需要的朋友可以參考下

1.建立基本數(shù)據(jù)類型的哈希表

unordered_map<int,int> m; //<string,string>,<char,char>

2.向哈希表中添加元素

1).insert 函數(shù)

m.insert(pair<int,int>(1, 10));
m.insert(pair<int,int>(2, 20));

2).用數(shù)組方法直接添加

m[3]=30;
m[4]=40;

3.成員函數(shù)

begin(),end()函數(shù)

m.begin() //指向哈希表的第一個(gè)容器
m.end()  //指向哈希表的最后一個(gè)容器,實(shí)則超出了哈希表的范圍,為空

find()查找函數(shù)

m.find(2)  //查找key為2的鍵值對是否存在 ,若沒找到則返回m.end()
if(m.find(2)!=m.end()) //判斷找到了key為2的鍵值對

count() 查找函數(shù)

查找哈希表中key為3的鍵值對,返回其數(shù)量,為1,則找到,若沒找到則返回0

m.count(3)  //返回 1
m.count(5)   //返回0

size()函數(shù)

m.size()   //返回哈希表的大小

empty()函數(shù)

m.empty()  //判斷哈希表是否為空,返回值為true/false

clear()函數(shù)

m.clear()  //清空哈希表

swap()函數(shù)

交換兩個(gè)哈希表中的元素,整個(gè)哈希表的鍵值對全部都交換過去

unordered_map<int,int> m1;
unordered_map<int,int> m2;
m1.swap(m2);
swap(m1,m2);

哈希表的遍歷

第一種遍歷

unordered_map<int, int> count;
for (auto p : count) {
    int front = p.first;   //key
    int end = p.second;   //value
}

第二種遍歷

unordered_map<int, int> count;
for(auto it=m.begin();it!=m.end();it++)
{
    int front = it->first;   //key
    int end = it->second;   //value
}

補(bǔ)充:實(shí)際應(yīng)用

LeetCode的242題:有效的字母異位詞

題目描述:

給定兩個(gè)字符串 s 和 t ,編寫一個(gè)函數(shù)來判斷 t 是否是 s 的字母異位詞。

示例 1:

輸入: s = "anagram", t = "nagaram"
輸出: true
示例 2:

輸入: s = "rat", t = "car"
輸出: false
說明:
你可以假設(shè)字符串只包含小寫字母。

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/valid-anagram

具體的分析可以去看LeetCode上面的優(yōu)質(zhì)解答,那上面的最高贊,或者關(guān)注的人比較多的答案基本都是很優(yōu)秀的解答和分析。這個(gè)問題的解法其中一個(gè)就是使用了unordered_map進(jìn)行解決的:

class Solution {
public:
    bool isAnagram(string s, string t) {
        if (s.length() != t.length()) {
            return false;
        }
        
        unordered_map<char, int> umap;
        for (int i = 0; i < s.size(); ++i) {
            umap[s[i]]++;
            umap[t[i]]--;
        }
 
        for (auto ch : umap) {
            if (ch.second != 0) {
                return false;
            }
        }
 
        return true;
    }
};

總結(jié)

到此這篇關(guān)于C++中使用哈希表(unordered_map)的常用操作的文章就介紹到這了,更多相關(guān)C++使用哈希表(unordered_map)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言進(jìn)階數(shù)據(jù)的存儲機(jī)制完整版

    C語言進(jìn)階數(shù)據(jù)的存儲機(jī)制完整版

    這篇文章主要為大家完整的介紹了C語言進(jìn)階數(shù)據(jù)的存儲機(jī)制,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-02-02
  • 在動態(tài)庫和靜態(tài)庫中使用模板(dynamic libraries ,static libraries)

    在動態(tài)庫和靜態(tài)庫中使用模板(dynamic libraries ,static libraries)

    給大家介紹一下在動態(tài)庫(dynamic libraries)和靜態(tài)庫(static libraries)使用模板(template)的用法和解決方案。
    2017-11-11
  • OpenCV實(shí)現(xiàn)霍夫變換直線檢測

    OpenCV實(shí)現(xiàn)霍夫變換直線檢測

    這篇文章主要為大家詳細(xì)介紹了OpenCV實(shí)現(xiàn)霍夫變換直線檢測,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • C++實(shí)現(xiàn)掃雷、排雷小游戲

    C++實(shí)現(xiàn)掃雷、排雷小游戲

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)掃雷、排雷小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • Matlab利用遺傳算法GA求解非連續(xù)函數(shù)問題詳解

    Matlab利用遺傳算法GA求解非連續(xù)函數(shù)問題詳解

    遺傳算法起源于對生物系統(tǒng)所進(jìn)行的計(jì)算機(jī)模擬研究。其本質(zhì)是一種高效、并行、全局搜索的方法,能在搜索過程中自動獲取和積累有關(guān)搜索空間的知識,并自適應(yīng)地控制搜索過程以求得最佳解。本文將利用其求解非連續(xù)函數(shù)問題,需要的可以參考一下
    2022-09-09
  • 基于QT5的文件讀取程序的實(shí)現(xiàn)

    基于QT5的文件讀取程序的實(shí)現(xiàn)

    本文主要介紹了基于QT5的文件讀取程序的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • opencv3/C++ FLANN特征匹配方式

    opencv3/C++ FLANN特征匹配方式

    今天小編就為大家分享一篇opencv3/C++ FLANN特征匹配方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • C++接口文件小技巧之PIMPL詳解

    C++接口文件小技巧之PIMPL詳解

    C++ 里面有一些慣用法(idioms),如 RAII,PIMPL,copy-swap、CRTP、SFINAE 等,今天要說的是 PIMPL,即 Pointer To Implementation,指向?qū)崿F(xiàn)的指針,感興趣的可以了解一下
    2023-06-06
  • C語言實(shí)現(xiàn)通訊錄系統(tǒng)課程設(shè)計(jì)

    C語言實(shí)現(xiàn)通訊錄系統(tǒng)課程設(shè)計(jì)

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)通訊錄系統(tǒng)課程設(shè)計(jì),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • C語言超詳細(xì)講解數(shù)據(jù)結(jié)構(gòu)中雙向帶頭循環(huán)鏈表

    C語言超詳細(xì)講解數(shù)據(jù)結(jié)構(gòu)中雙向帶頭循環(huán)鏈表

    帶頭雙向循環(huán)鏈表:結(jié)構(gòu)最復(fù)雜,一般用在單獨(dú)存儲數(shù)據(jù)。實(shí)際中使用的鏈表數(shù)據(jù)結(jié)構(gòu),都是帶頭雙向循環(huán)鏈表。另外這個(gè)結(jié)構(gòu)雖然結(jié)構(gòu)復(fù)雜,但是使用代碼實(shí)現(xiàn)以后會發(fā)現(xiàn)結(jié)構(gòu)會帶來很多優(yōu)勢,實(shí)現(xiàn)反而簡單
    2022-04-04

最新評論

嵊泗县| 通河县| 沭阳县| 镇赉县| 达日县| 陇南市| 涞源县| 永新县| 榆树市| 二手房| 虹口区| 社旗县| 鄄城县| 岱山县| 义乌市| 吴旗县| 长沙县| 冀州市| 那曲县| 东山县| 界首市| 兴和县| 于都县| 开原市| 长岭县| 盘山县| 乐山市| 永嘉县| 甘德县| 钟祥市| 宁津县| 景东| 周口市| 湘潭市| 涞源县| 册亨县| 英超| 叙永县| 无棣县| 迁西县| 梁平县|