常用代码知识

一、算法题常用

C++STL中哈希表(std::unordered_map和std::unordered_multimap)

unordered_map和unordered_multimap区别在与mult的值可以重复。

方法insert、erase、size、count(统计出现次数)

cpp 复制代码
#include <iostream>
#include <unordered_map>

int main() {
    std::unordered_map<std::string, int> ageMap;

    // 插入元素
    ageMap["Alice"] = 30;
    ageMap["Bob"] = 25;
    ageMap["Charlie"] = 35;

    // 访问元素
    std::cout << "Alice's age: " << ageMap["Alice"] << std::endl;

    // 查找元素
    auto search = ageMap.find("Bob");
    if (search != ageMap.end()) {
        std::cout << "Bob's age: " << search->second << std::endl;
    }

    return 0;
}
cpp 复制代码
#include <iostream>
#include <unordered_map> // 注意这里用的是 unordered_map 的头文件,因为 multimap 也包含在里面

int main() {
    std::unordered_multimap<std::string, int> scores;

    // 插入元素
    scores.insert({"Alice", 90});
    scores.insert({"Bob", 85});
    scores.insert({"Alice", 95}); // Alice 有两个分数

    // 访问元素(演示如何遍历一个键的所有值)
    auto range = scores.equal_range("Alice"); // 获取所有键为 "Alice" 的元素的范围
    for (auto it = range.first; it != range.second; ++it) {
        std::cout << "Alice's score: " << it->second << std::endl;
    }

    return 0;
}
相关推荐
JieE21212 小时前
LeetCode 101. 对称二叉树|JS 递归 + 迭代双解法,彻底搞懂镜像判断
javascript·算法
JieE2121 天前
LeetCode 56. 合并区间|超清晰 JS 图解思路,面试高频区间题
javascript·算法·面试
Jack202 天前
HarmonyOS开发中错误处理策略:网络异常统一处理
算法
小小杨树2 天前
读懂色彩:拍照调色不再难
算法·计算机视觉·配色
JieE2122 天前
LeetCode 226. 翻转二叉树|JS 递归超详细拆解,二叉树入门经典题
javascript·算法
JieE2123 天前
LeetCode 104. 二叉树的最大深度|递归思路超详细拆解
javascript·算法
vivo互联网技术3 天前
CVPR 2026 | 全新强化学习框架 BeautyGRPO:重塑真实人像
算法·大模型·cvpr·影像
Darling噜啦啦3 天前
列表转树算法深度解析:从 Map 到 Reduce 的两种实现,面试高频考点
数据结构·算法·面试
用户497863050733 天前
(一)小红的数组操作
算法·编程语言