0

继续这个问题,我正在尝试访问地图。但是我遇到了分段错误。下面是我的代码:

typedef multimap<string, vector<string> > mos_map;
typedef multimap<string, vector<string> >::iterator mos_map_it;

int main()
{

mos_map mos;
mos_map_it it;

vector<string> v1;

v1.push_back("a");
v1.push_back("b");
v1.push_back("c");
v1.push_back("mo1");

mos.insert(mos_map::value_type(*(v1.end()-1),v1));

for(it=mos.begin();it!=mos.end();it++);
{
cout<<(*it).first<<endl;//seg fault occurs here
}
4

1 回答 1

4
for(it=mos.begin();it!=mos.end();it++);
//                                    ^

你的循环有空的身体。

一些技巧:

  • 启用警告:

    警告:for 循环的主体为空 [-Wempty-body]

  • 仅在需要时声明变量:

    for(auto it = mos.begin(); it != mos.end(); it++);
    {
        cout << (*it).first << endl;
    }
    

    此代码将导致编译时错误:

    错误:使用未声明的标识符“它”

于 2013-06-28T10:37:42.110 回答