我正在编写一个代码来检查一个人是否曾经访问过某个特定的地方,如果为真,则不做任何其他事情,将新的地方添加到访问过的地方列表中我正在使用地图将学生姓名存储为键和数组存放地点如下
#include<map>
using namespace std;
map<string,string[]> stu_plac;
map<string,string[])::iterator it;
我找不到在地图上搜索的正确方法
我尝试了以下方法:
bool exist=false;
if(stu_plac.count(name))
{
it=stu_plac.find(name);
for(auto tt=(*it).second.begin(); tt!=(*it).second.end(); tt++)
{
if (tt.compare(place)==0)//exist
{
exist=true;
}
break;
}
if (!exist)
{
(*it)second[++tt]=place;
}
}
else
{
stu_plac.insert(pair<string,string[]>(name,place));
}
我认为问题出在字符串迭代器的数组上,你能帮我找到正确的方法吗?我是否需要使用 multimap 或其他数据构造器来执行此操作?