我正在尝试以字符串和 vector 分别作为键和值来显示多重映射的内容。当我尝试显示 vector 的内容( multimap 中的值)时遇到问题。到目前为止我所做的是:
multimap<string, vector<string> > someMultimap;
vector<string> someVector;
someVector.push_back("test");
someMultimap.insert(pair<string, vector<string> >("KEY", someVector));
//So for it works fine...
multimap <string, vector<string> >::iterator it;
for (it = someMultimap.begin(); it != someMultimap.end(); ++it)
{
cout << it->first << endl << endl << it->second << endl << endl;
^^^^^^^^^^
this is the problem, can´t do this with a vector(?)
}
有没有人有解决问题的建议?
最佳答案
您可以为 vector 添加第二个循环。
multimap <string, vector<string> >::const_iterator it;
for (it = someMultimap.begin(); it != someMultimap.end(); ++it)
{
cout << it->first << endl ;
vector<string>::const_iterator itVec;
for (itVec = it->second.begin(); itVec != it->second.end(); ++itVec)
{
cout << *itVec <<" ";
}
cout<<endl;
}
如果你不打算修改任何值,你可以让你的迭代器const
关于c++ - 打印 multimap<string, vector<string>>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27611034/