用string给set复制报错,该如何解决

用string给set<string>复制报错
我是先定义了一个vector<string> Str;然后对它进行了初始化,然后我新建一个set<string>,希望每次只从vector中读入一个值,输入到set_temp中进行赋值,然后和map< set<string> , int>中的第一个进行比较,用find查找,但是在使用find是出问题了,求解,本人c++菜鸟,你懂得




for(int i=0; i < Str.size();i++)
{
string temp=Str[i];
set<string> set_temp;
set_temp.insert(temp);
set<string>::iterator  iset_temp=set_temp.begin();

for(imap=map_count.begin();imap!=map_count.end();imap++)
{
map <set <string>,int>::iterator imap_find;
imap_find = map_count.find(*(iset_temp));

最后一句的'.'报错,没看懂,不知道为什么

错误信息是:
1>c:\users\zero\documents\visual studio 2010\projects\find the sequence homework 3.22\find the sequence homework 3.22\test.cpp(73): error C2664: “std::_Tree_iterator<_Mytree> std::_Tree<_Traits>::find(const std::set<_Kty> &)”: 不能将参数 1 从“const std::basic_string<_Elem,_Traits,_Ax>”转换为“const std::set<_Kty> &”

------解决方案--------------------
你代码中 iset_temp 是 set<string>的迭代器,*(iset_temp)是string类型,与你map中value的类型set<string>不匹配。错误就在这里。
------解决方案--------------------
类型不匹配的问题,用string代替set<string>即可