我无法弄清楚 .end 函数在这个 cpp 程序中是如何工作的
i am not able to figure it out how the .end function is working in this cpp program
这是一个地图问题,我从用户那里获取一个字符串和一个整数输入,然后简单地打印出与键对应的值,如果用户输入的键没有对应的值或者键没有'不存在然后我打印出来 Not found 现在我无法理解的是 if (name.find(s1)!=name.end() 如何在整个代码下面给出的代码中工作是我写的,除了我提到的 if 块所以帮助我理解 if 语句的工作
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,x,query;
string s,s1;
map<string,int> name;
map<string,int> ::iterator itr;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> s >> x;
name[s]=x;
}
cin>>query;
for (int i = 0; i < query; i++)
{
cin>>s1;
if (name.find(s1)!=name.end())
{
cout<<s1<<"="<<name[s1]<<endl;
}
else
{
cout<<"Not found"<<endl;
}
}
return 0;
}
end() 函数 return 表示容器结尾的迭代器,此处为映射。如果函数 find(s1) return 一个等于 end() 给出的迭代器的迭代器,那么这意味着它没有找到 s1.
这是一个地图问题,我从用户那里获取一个字符串和一个整数输入,然后简单地打印出与键对应的值,如果用户输入的键没有对应的值或者键没有'不存在然后我打印出来 Not found 现在我无法理解的是 if (name.find(s1)!=name.end() 如何在整个代码下面给出的代码中工作是我写的,除了我提到的 if 块所以帮助我理解 if 语句的工作
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,x,query;
string s,s1;
map<string,int> name;
map<string,int> ::iterator itr;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> s >> x;
name[s]=x;
}
cin>>query;
for (int i = 0; i < query; i++)
{
cin>>s1;
if (name.find(s1)!=name.end())
{
cout<<s1<<"="<<name[s1]<<endl;
}
else
{
cout<<"Not found"<<endl;
}
}
return 0;
}
end() 函数 return 表示容器结尾的迭代器,此处为映射。如果函数 find(s1) return 一个等于 end() 给出的迭代器的迭代器,那么这意味着它没有找到 s1.