ある人が以前に特定の場所を訪れたことがあるかどうかを確認するコードを書いています。本当の場合は、他に何もしないでください。新しい場所を訪問した場所のリストに追加します。地図を使用して学生の名前をキーとして保存し、次のように場所を保存します
#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));
}
問題は文字列イテレータの配列にあると思います。これを行う正しい方法を見つけるのを手伝っていただけませんか。これを行うには、マルチマップまたは他のデータ構造を使用する必要がありますか?