一、算法题常用
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;
}