我遇到了一些问题如何定义&使用迭代器。
这是我的代码的错误。
set< pair<int, pair<int,int> > > data1;
set< pair<int , pair<int,int> > > iterator it1;
// imagine set < pair x , pair < y , z >>>
vector<set <int> > data2;
set<int>::iterator it2;
vector< pair<int,int> > data3;
vector< pair<int,int> > it3;
如何用迭代器显示data1,data2,data3的内容? 谢谢你的帮助。
答案 0 :(得分:1)
这很简单......
#include <iostream>
#include <set>
#include <utility>
#include <vector>
int main() {
std::set<std::pair<int, std::pair<int,int>>> data1;
data1.emplace(3, std::make_pair(4, 5));
data1.emplace(6, std::make_pair(7, 8));
for (auto p : data1)
std::cout << std::get<0>(p) << " " << std::get<0>(std::get<1>(p)) << " " << std::get<1>(std::get<1>(p)) << "\n";
std::cout << "\n";
std::vector<std::set<int>> data2;
data2.push_back({4,5,6});
data2.push_back({7,8,9});
for (auto set_element : data2) {
for (auto element : set_element)
std::cout << element << " ";
std::cout << "\n";
}
std::cout << "\n";
std::vector<std::pair<int,int>> data3;
data3.emplace_back(1, 2);
data3.emplace_back(3, 4);
for (auto p : data3)
std::cout << std::get<0>(p) << " " << std::get<1>(p) << "\n";
std::cout << "\n";
}
哪些输出......
3 4 5
6 7 8
4 5 6
7 8 9
1 2
3 4