C++ set 和 pair 的迭代器

C++ iterators for set & pair

本文关键字:迭代器 pair set C++      更新时间:2023-10-16

我在如何定义和使用迭代器时遇到了一些问题。

这是我代码的阐明。

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;

请问如何使用迭代器显示数据1,数据2,数据3的内容?感谢您的任何帮助。

这相当简单...

#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