2014-02-06 71 views
-5

我想打印對在圖像:C++如何打印這個地圖的std ::地圖<INT,對<矢量<對<int, int>>,INT >>

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 } 
+5

好樣的!你有問題嗎? – m24p

+0

你能打印ints - > ints地圖的值嗎?或者,你是否堅持走地圖以及拉出一對「第一」部分? – doctorlove

+4

這個問題似乎是無關緊要的,因爲它是一篇博文,而不是一個問題。 –

回答

0

因此,良好的第一步是實際編寫示例數據,使其與您請求的類型相匹配。

也許是這樣的:

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}, 
0

我看不出有任何意義在你的問題中,你究竟想要做什麼?

總之,這個代碼應該是能夠做到這一點:

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; 
    } 
相關問題