力扣知识点杂集

  • 无序哈希表(unordered_map):

键:数组中的数值

值:该数值对应的下标

  • 哈希表常见用法
cpp 复制代码
#include <unordered_map>
//头文件

// 声明一个哈希表,键类型为 Key,值类型为 Value
unordered_map<Key, Value> map;

// 声明哈希表示例
unordered_map<int, int> map;               // 最常见:键和值都是整数





//插入元素
// 方法1:使用中括号(会覆盖已存在的键)
map[1] = 100;
map[2] = 200;

// 方法2:使用 insert 函数(不会覆盖已存在的键,会创造一个临时变量)
map.insert({3, 300});
map.insert(make_pair(4, 400));
map.insert(pair<int, int>(5, 500));

// 方法3:使用 emplace(C++11,更高效)
map.emplace(6, 600);




//访问元素
// 方法1:使用中括号(如果键不存在,会自动插入默认值)
int value1 = map[1];           // 存在则返回对应值
int value2 = map[999];         // 不存在会插入键999,值为0(int默认值)

// 方法2:使用 at()(如果键不存在,抛出 out_of_range 异常)
try {
    int value3 = map.at(1);
    int value4 = map.at(999);   // 会抛出异常
} catch (const out_of_range& e) {
    cout << "键不存在" << endl;
}

// 方法3(也可以用来查找):使用 find()(推荐,可以检查是否存在)
auto it = map.find(1);
if (it != map.end()) {
    cout << "找到: " << it->first << " -> " << it->second << endl;
}





//删除元素
// 方法1:根据键删除
map.erase(1);                    // 删除键为1的元素
int n = map.erase(999);          // 返回删除的元素个数(0或1)

// 方法2:根据迭代器删除
auto it = map.find(2);
if (it != map.end()) {
    map.erase(it);               // 删除迭代器指向的元素
}

// 方法3:删除所有元素
map.clear();                     // 清空哈希表
  • 需要快速判断元素是否存在 → 用 unordered_set

需要建立对应关系 → 用 unordered_map

cpp 复制代码
#include <unordered_set>

unordered_set<int> s;

// 插入
s.insert(10);
s.insert(20);

// 查找
if (s.find(10) != s.end()) {
    // 找到了
}

// 删除
s.erase(10);

// 大小
int size = s.size();
bool empty = s.empty();

// 清空
s.clear();

// count函数最常用的两种场景:

// 1. 判断元素是否存在(unordered_set/map)
if (set.count(value)) {
    // 存在
}

// 2. 统计出现次数(vector/string)
int n = count(vec.begin(), vec.end(), value);
相关推荐
镜子AI15 分钟前
教培机构多模态内容跨模态检索系统:基于CLIP的统一表征与图文混合召回算法
人工智能·python·算法·机器学习
小宋102126 分钟前
合成评测集怎么造才不“自嗨”:自动出题、去重、泄漏检测与人工抽检
人工智能·算法·机器学习
蒸蒸yyyyzwd39 分钟前
秋招笔记day58
算法·哈希算法
for_ever_love__40 分钟前
缓存穿透、击穿、雪崩:三个经典问题与完整解决方案
java·数据库·redis·缓存·哈希算法·布隆过滤器·雪崩
Jasmine_llq1 小时前
《P5663 [CSP-J 2019] 加工零件》
数据结构·算法·bfs·广度优先搜索·分层 bfs /·奇偶分层最短路·奇数最短步数
在所不辞兄1 小时前
分层PINN提升多物理场一致性
人工智能·神经网络·算法·机器学习·工程仿真
wanderist.1 小时前
CSP 第43次认证 T4:集合划分 —— 图染色与二分图判定
算法·图论
不做无法实现的梦~1 小时前
基于 PX4 的全仓库架构、无人机算法解析与开发学习规划
算法·架构·无人机
做cv的小昊1 小时前
【大模型算法自学笔记01】NLP基础知识(1.1 自注意力)
人工智能·笔记·算法·自然语言处理·大模型·llm
stolentime2 小时前
AT_arc182_a [ARC182A] Chmax Rush!题解
数据结构·c++·算法·动态规划