c++ - 打印 multimap<string, vector<string>>?

标签 c++ vector multimap

我正在尝试以字符串和 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/

相关文章:

c++ - 如何将带有默认参数的模板函数传递给 std::call_once

c++ - 以二进制序列化和反序列化 vector

c++ - 我的 fstream 总是返回 true,即使文件名错误?

c++ - C++11 中的值初始化对象和 std::vector 构造函数

data-structures - 多次使用相同 key 的红黑树 : store collections in the nodes or store them as multiple nodes?

C++在成员变量中保存不同类型数据的优雅方式

vector - 借用改变 Vector 的类型

c++ - 为 lldb 中的大型数据结构设置观察点

c++ - 使用多重映射算法 (std::minmax_element) 在成对的多重映射中找到最大/最小键 <Class object, enum>?

c++ - 具有相同类型的键和值的多重映射是否有意义?