C++ set 和 pair 的迭代器
C++ iterators for set & pair
我在如何定义和使用迭代器时遇到了一些问题。
这是我代码的阐明。
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
相关文章:
- 使用std::multimap迭代器创建std::list
- 来自 std::list 的迭代器 .end() 按预期返回"0xcdcdcdcdcdcdcdcd"但 .begin()
- C++中带有List类的迭代器Segfault
- 如何在c++迭代器类型中包装std::chrono
- 集合上的输出迭代器:assign和increment迭代器
- Boost Spirit,获取迭代器内部语义动作
- 对于set上的循环-获取next元素迭代器
- 为什么output_editor Concept不需要output_e迭代器标记
- c++17文件系统::recursive_directory迭代器()在mac上没有给出这样的目录,但在windows上
- 使用迭代器时如何访问对象在向量中的位置?
- std::vector::迭代器是否可以合法地作为指针
- 跟随整数索引列表的自定义类迭代器
- 不明白迭代器,引用和指针失效,一个例子
- map<int,int>的*迭代器是什么?它不是pair<int,int>
- 如何使用迭代器遍历表单 pair<int,pair<int,int>> 的映射
- C++ set 和 pair 的迭代器
- 如何打印迭代器类型列表<pair<int,int>>::iterator itrator it指向的元素
- std::list< pair<double, int> >::迭代器声明不起作用
- 将迭代器的左侧从auto替换为pair
- 比较两个map::迭代器:为什么需要std::pair的复制构造函数