【问题标题】:C++ How to print this map std::map<int, pair<vector<pair<int, int>>, int>> [closed]C ++如何打印此地图 std::map<int, pair<vector<pair<int, int>>, int>> [关闭]
【发布时间】:2014-03-03 21:32:34
【问题描述】:

我想在地图中打印对,例如:

std::map<int, pair<vector<pair<int, int>>, int>> Mymap;

此地图中的数据示例:

Mymap[0] = (0, ({ { 1, 3 }, { 1, 5 } }, 4))
Mymap[1] = (1, ({ { 2, 3 }, { 3, 7 }, { 1, 3 } }, 8))

我想打印这样的对:

{ 1, 3 }, { 1, 5 } 
{ 2, 3 }, { 3, 7 }, { 1, 3 } 

【问题讨论】:

  • 对你有好处!你有问题吗?
  • 你能从 ints -> ints 的映射中打印值吗?或者您是否坚持在地图上行走以及拉出一对中的first 部分?
  • 这个问题似乎是题外话,因为它是一篇博文而不是一个问题。

标签: c++


【解决方案1】:

因此,好的第一步是实际编写示例数据,使其与您请求的类型相匹配。

也许是这样的:

Mymap[0] = {{{1, 3}, {1, 5}}, 4};
Mymap[1] = {{{2, 3}, {3, 7}, {1, 3}}, 8};

然后,我们可以很容易地迭代这个......

#include <map>
#include <vector>
#include <iostream>

int main() {
    std::map<int, std::pair<std::vector<std::pair<int, int>>, int>> Mymap;

    Mymap[0] = {{{1, 3}, {1, 5}}, 4};
    Mymap[1] = {{{2, 3}, {3, 7}, {1, 3}}, 8};

    for (const auto & pair : Mymap) {
        for (const auto & pair : pair.second.first) {
            std::cout << "{" << pair.first << ", " << pair.second << "}, ";
        }
        std::cout << "\n";
    }
}

哪些输出:

{1, 3}, {1, 5}, 
{2, 3}, {3, 7}, {1, 3}, 

【讨论】:

    【解决方案2】:

    我看不出你的问题有什么意义,你到底想做什么?

    不管怎样,这段代码应该可以做到:

        std::map<int, pair<vector<pair<int, int>>, int>> Mymap;
        Mymap[0] = {{{1, 3}, {1, 5}}, 4};
        Mymap[1] = {{{2, 3}, {3, 7}, {1, 3}}, 8};
        map<int, pair<vector<pair<int, int>>, int>>::iterator it;
        for (it=Mymap.begin(); it!=Mymap.end(); it++){
            pair<vector<pair<int, int>>, int> myPair=it->second;
            vector<pair<int, int>> myVec=myPair.first;
            for (int i=0; i<myVec.size(); i++){
                cout<< "{ " << myVec[i].first << ","<<myVec[i].second<< " }, ";
    
            }
            cout<<endl;
        }
    

    【讨论】:

      猜你喜欢
      • 2011-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多