帮忙看下这个程序Error executing cl.exe. (VC6.0)

showming 2010-03-12 10:46:08
#include <iostream>
#include <utility>
#include <vector>
#include <string>
#include <map>


using namespace std;

int main()
{
map<string, vector<pair<string,string> > > children;
string surname;
string child,birth;


while(1)
{
cout<<"input the surname: "<<endl;
cin>>surname;
if (!cin)
{
cin.clear();
cin.ignore();
break;
}
vector<string> childrenname;
pair<map<string,vector<pair<string,string> > >::iterator,bool> ret=children.insert(make_pair(surname,childrenname));
if (!ret.second)
{
cout<<"there is a same name"<<endl;
continue;
}

cout<<"input all the child's name and child's birthday"<<endl;
while (cin>>child>>birth)
{
ret.first->second.push_back(make_pair(child,birth));
}

cin.clear();
cin.ignore();

}

cout<<"input the surname you want to "<<endl;
cin>>surname;
if(children.count(surname))
for (vector<pair<string,string> >::iterator iter=children[surname].begin();iter!=children[surname].end();iter++)
{
cout<<(*iter).first<<" "<<(*iter).second<<endl; //error C2228: left of '.first' must have class/struct/union type
//second' must have class/struct/union type
}

return 0;

}
...全文
112 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
cattycat 2010-03-12
  • 打赏
  • 举报
回复
vector<string> childrenname;
pair<map<string,vector<pair<string,string> > >::iterator,bool> ret=children.insert(make_pair(surname,childrenname));

childrenname的vector应该是vector<pair<string,string>>类型吧。
yuzl32 2010-03-12
  • 打赏
  • 举报
回复
抛弃VC6.0吧,都2010了。

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧