亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

C++ HashMap可以存儲自定義類型嗎

c++
小樊
83
2024-08-02 18:26:13
欄目: 云計算

是的,C++的HashMap可以存儲自定義類型。可以通過定義自定義類型的哈希函數和相等比較函數來實現,以確保HashMap可以正確地對自定義類型進行存儲和查找操作。以下是一個簡單的示例:

#include <iostream>
#include <unordered_map>

// 定義自定義類型
struct CustomType {
    int id;
    std::string name;

    bool operator==(const CustomType& other) const {
        return id == other.id && name == other.name;
    }
};

// 定義自定義類型的哈希函數
struct CustomTypeHash {
    std::size_t operator()(const CustomType& custom) const {
        return std::hash<int>()(custom.id) ^ (std::hash<std::string>()(custom.name) << 1);
    }
};

int main() {
    std::unordered_map<CustomType, int, CustomTypeHash> customMap;

    CustomType c1 = {1, "Alice"};
    CustomType c2 = {2, "Bob"};

    customMap[c1] = 10;
    customMap[c2] = 20;

    std::cout << "c1 value: " << customMap[c1] << std::endl;
    std::cout << "c2 value: " << customMap[c2] << std::endl;

    return 0;
}

在上面的示例中,我們定義了一個自定義類型CustomType,并定義了CustomTypeHash結構體來作為它的哈希函數。然后我們使用std::unordered_map來存儲CustomType類型的鍵值對。通過定義CustomType的相等比較函數和哈希函數,我們可以確保HashMap正確地對自定義類型進行操作。

0
南投县| 涪陵区| 酒泉市| 建昌县| 武穴市| 额济纳旗| 贵德县| 汝州市| 镇雄县| 永嘉县| 含山县| 金沙县| 黑龙江省| 长沙县| 叙永县| 赞皇县| 勃利县| 辽宁省| 邹平县| 濮阳市| 临朐县| 略阳县| 达州市| 蒲江县| 梁山县| 大城县| 黄大仙区| 博白县| 金寨县| 昌吉市| 新泰市| 晋城| 大悟县| 新干县| 丁青县| 洛宁县| 平乡县| 荣昌县| 和硕县| 藁城市| 海宁市|