新学这方面的知识,求帮忙!
启动调试,设置的断点都变成一个叹号,无法单步跟踪,不知这里出现什么错误。
提示错误的地方我在程序中已经标出!
#include <map>
#include <string>
#include <iostream>
#include <utility>
#include <vector>
using namespace std;
int main(int argc, char **argv)
{
map<string, vector<string> > children;
string familyName; //家族名
string childName; //孩子名
//**************************************************************************
do
{
cout << "输入家族名:(ctrl+z结束输入)" << endl;
cin >> familyName;
if (!cin)
break;
vector<string> child;
pair< map< string, vector<string> >::iterator, bool> ret =
childName.insert(make_pair(familyName, child)); //这里出了问题
if (!ret.second)
{
cout << "家族名已经存在:" << familyName << endl;
continue;
}
cout << "输入孩子名:(ctrl+z结束输入)" << endl;
while (cin >> childName)
ret.first->second.push_back(childName);
cin.clear();
} while (cin);
//**************************************************************************
cin.clear();
cout << "输入要查询的家族名:";
cin >> familyName;
map<string, vector<string> >::iterator it = children.find(familyName);
if (it == children.end())
{
cout << "没有该家族名" << endl;
}
else
{
cout << "输入孩子名:" << endl;
cin >> childName;
vector<string>::const_iterator iter = it->second.begin();
while (iter != it->second.end())
cout << *iter << endl;
}
return 0;
}
1>------ 已启动生成: 项目: 练习, 配置: Debug Win32 ------
1>正在编译...
1>main.cpp
1>g:\c++学习\我的c++程序\c++primer4th\练习\练习\main.cpp(24) : error C2664: 'std::_String_iterator<_Elem,_Traits,_Alloc> std::basic_string<_Elem,_Traits,_Ax>::insert(std::_String_iterator<_Elem,_Traits,_Alloc>)' : cannot convert parameter 1 from 'std::pair<_Ty1,_Ty2>' to 'std::_String_iterator<_Elem,_Traits,_Alloc>'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>,
1> _Alloc=std::allocator<char>,
1> _Ax=std::allocator<char>
1> ]
1> and
1> [
1> _Ty1=std::string,
1> _Ty2=std::vector<std::string>
1> ]
1> and
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>,
1> _Alloc=std::allocator<char>
1> ]
1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
1>生成日志保存在“file://g:\C++学习\我的C++程序\C++Primer4th\练习\练习\Debug\BuildLog.htm”
1>练习 - 1 个错误,0 个警告
========== 生成: 0 已成功, 1 已失败, 0 最新, 0 已跳过 ==========
[解决办法]
项目设置成了release模式
[解决办法]
childName.insert(make_pair(familyName, child));函数的参数不对
[解决办法]
代码有点多,等中午或晚上有空了帮你看看
[解决办法]
重建所有
[解决办法]
标准化可行? 代码写在[code=C/C++][/code]之间
[解决办法]
