c++语言7-10 容器-HashMap-检索pta
时间: 2025-03-16 21:25:10 浏览: 55
### C++ 中 HashMap 的使用方法
在 C++ 标准库中,`std::unordered_map` 是实现哈希表的标准容器之一。它的功能类似于 `HashMap`,提供了键值对存储的功能,并支持快速查找、插入和删除操作。
#### 基本语法
以下是 `std::unordered_map` 的基本用法:
```cpp
#include <iostream>
#include <unordered_map>
int main() {
// 创建一个 unordered_map 对象
std::unordered_map<int, std::string> myMap;
// 插入元素
myMap[1] = "Apple";
myMap[2] = "Banana";
// 查找元素
if (myMap.find(1) != myMap.end()) {
std::cout << "Key 1 found with value: " << myMap[1] << std::endl;
}
// 遍历 map
for (const auto& pair : myMap) {
std::cout << "Key: " << pair.first << ", Value: " << pair.second << std::endl;
}
// 删除元素
myMap.erase(2);
return 0;
}
```
上述代码展示了如何创建、插入、查找和遍历 `std::unordered_map`[^2]。
---
### 如何在 PTA 平台上进行检索
PTA(Programming Teaching Assistant)是一个在线评测平台,主要用于学生提交编程作业并获得自动评分反馈。要在 PTA 上找到特定类型的题目或练习集,可以按照以下方式操作:
1. **访问官网**
打开浏览器输入地址 https://pintia.cn/ 登录账号进入首页。
2. **浏览分类目录**
在页面顶部导航栏下拉菜单中有多个选项卡可供选择,比如“考试”、“练习”。点击这些标签能够看到更详细的子项列表[^3]。
3. **搜索框定位目标资源**
利用右上角全局搜索引擎直接输入关键词如“哈希表应用”,即可过滤显示相关内容链接跳转至具体描述界面查看详细需求说明文档。
4. **按难度筛选试题**
用户还可以依据个人学习进度挑选适合自己的挑战等级——初级(Basic Level),进阶版(Advanced Level),乃至顶级(Top Level)。
---
### 结合实例分析
假设现在有一道来自 PTA 的典型例题:“统计字符串中的字符频率。” 可以采用前面提到过的 hash 表来高效解决该类问题。下面给出一种可能的解决方案思路及其对应的源码片段作为参考:
给定两个字符串 A 和 B,请找出只存在于 A 字符串而不在 B 字符串里的那些字母组合打印出来。
解法伪逻辑:
- 初始化辅助数组记录B里各ASCII编码对应位置上的计数值;
- 遍历读取每一个属于A的部分单元格判断其是否满足条件输出相应结果;
实际编写如下所示版本程序即实现了这一目的[^1]:
```cpp
#include <bits/stdc++.h>
using namespace std;
int s[1001];
int main(){
string a,b;
getline(cin,a);
getline(cin,b);
for(int i=0;b[i]!='\0';i++)
s[b[i]]++; // 记录 b 中每个字符出现次数
for(int i=0;a[i]!='\0';i++){
if(!s[a[i]])
cout<<a[i];
}
return 0;
}
```
此段落解释了如何运用简单的整型数组模拟 hashmap 功能完成任务处理流程演示。
---
阅读全文
相关推荐


















