首页 > 解决方案 > 无法在地图中打印地图中的矢量值

问题描述

我正在尝试打印地图地图的全部内容,但一直遇到问题。这是我的地图初始化map<int, map<int, vector<int>>> myMap;

我尝试了以下代码:

for( auto const & cit : myMap)
    {
        cout << cit.first << " : ";
        auto const & imap = cit.second;
        for( auto const & cit2 : imap )
        {
            cout << cit2.first << ":" << cit2.second << ","; // errors out
            //cout << cit2.first << ":"; // works, but it is not printing out the vector<int> portion
        }
        cout << endl;
    }

如上所述,一旦cit2.second使用,我收到以下错误: error: no match for 'operator<<' (operand types are 'std::basic_ostream<char>' and 'const std::vector<int>')|

有人可以给我一些见解吗?

标签: c++dictionary

解决方案


你需要这样做。

for( auto const & cit : myMap)
    {
        cout << cit.first << " : ";
        auto const & imap = cit.second;
        for( auto const & cit2 : imap )
        {
            cout << cit2.first << ":";
            auto const &vec = cit2.second;
            for(auto const &i : vec)
            {
                cout<<i<<" ";
            }cout<<endl;   
            //cout << cit2.first << ":"; // works, but it is not printing out the vector<int> portion
        }
        cout << endl;
    }

推荐阅读