使用map STL存储学生的学号和姓名的C++程序

2023年 9月 17日 54.5k 0

使用map STL存储学生的学号和姓名的C++程序

假设我们有一个学生卷的地图数据结构,卷的名称是整型数据,名称是字符串类型数据。在我们的标准输入中,我们提供 n 个查询。在每个查询中(每行)必须有两个元素,对于类型 1 查询,必须有三个元素。第一项是运算符,第二项是卷,第三项是名称,对于双元素查询,第二项是卷号。操作如下 -

  • 插入。这会将名称插入到相应卷的地图中

  • 删除。这将从地图上删除对应的卷号(如果存在)。

  • 搜索。这将在带有卷号的地图中搜索名称,如果存在则显示名称,否则显示未找到。

因此,如果输入类似于 n = 8,则查询= [[1,5,"阿塔努"], [1,8,"塔潘"], [1,3,"曼尼什"],[2,8],[1,9,"皮亚利"], [3 ,8],[3,3], [3,5]],则输出将为 [Not found, Manish, Atanu],因为卷 8 不存在,卷 3 的学生姓名为 Manish,姓名为卷数为 5 的学生是“Atanu”。

为了解决这个问题,我们将按照以下步骤操作 -

  • n := 查询数量 li>
  • 定义一个整数类型键和字符串类型值的映射 m。
  • 当 n 非零时,在每次迭代中减少 n,执行:
      获取当前查询类型t
  • 获取卷号
  • 如果t与1相同,则:
    • 获取名称
    • m[roll] := name
  • 否则当 t 等于 2 时,则:
    • m[roll ] := 空字符串
  • 否则
    • 如果 m[roll] 不是空字符串,则:
      • 显示m[roll]
    • 否则
      • 显示“未找到”

示例

让我们看看以下实现,以便更好地理解 -

#include
#include
using namespace std;
int main(){
    int n;
    cin >> n;
    map m;
    while (n--) {
        int t;
        cin >> t;
        int roll;
        cin >> roll;
        if (t == 1) {
            string name;
            cin >> name;
            m[roll] = name;
        } else if (t == 2) {
            m[roll] = "";
        } else {
            if(m[roll] != "")
                cout 登录后复制

输入

8
1 5 Atanu
1 8 Tapan
1 3 Manish
2 8
1 9 Piyali
3 8
3 3
3 5

登录后复制

输出

Not found
Manish
Atanu

登录后复制

以上就是使用map STL存储学生的学号和姓名的C++程序的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论