您好,欢迎访问一九零五行业门户网

使用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 <iostream>#include <map>using namespace std;int main(){ int n; cin >> n; map<int, string> 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 << m[roll] << endl; else cout << "not found" << endl; } }}
输入81 5 atanu1 8 tapan1 3 manish2 81 9 piyali3 83 33 5
输出not foundmanishatanu
以上就是使用map stl存储学生的学号和姓名的c++程序的详细内容。
其它类似信息

推荐信息