我想在地图中打印对,如:
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 }
答案 0 :(得分: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},
答案 1 :(得分: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;
}