C++ 如何打印和(访问)矢量元组(在地图中)
C++ How to print and (access) tuples of vectors (in a map)?
我想要一个向量元组,类似于{1,2,3,4},{5,6},{7,8,9}。我需要这个的原因是,我先验地知道我需要多少个向量,但不知道它们会持续多久。所以我认为这可能是最好的方法。最后我还想将它们保存到地图中,因为我稍后需要其中的几个元组,以便我可以通过索引访问它们。
首先,我想到了这样的事情:
#include <vector>
#include <tuple>
#include <iostream>
#include <map>
using namespace std;
typedef vector<int> VECTOR;
typedef tuple<VECTOR, VECTOR, VECTOR> TUPLE;
typedef map<int, TUPLE> MAP;
int main()
{
MAP m;
VECTOR v1, v2, v3;
TUPLE t;
v1 = { 1, 2, 3, 4 };
v2 = { 5, 6 };
v3 = { 7, 8, 9 };
t = make_tuple(v1, v2, v3);
m.insert(pair<int, TUPLE>(1, t));
return 0;
}
如何打印地图以及如何访问其中的元组?
编辑:我知道如何循环浏览地图,但不知道如何打印矢量元组。
如果您使用的是 C++11,则可以执行以下操作
for (auto element : m) // iterate over map elements
{
int key = element.first;
TUPLE const& t = element.second; // Here is your tuple
VECTOR const& v1 = std::get<0>(t); // Here are your vectors
VECTOR const& v2 = std::get<1>(t);
VECTOR const& v3 = std::get<2>(t);
}
相关文章:
- C++:TypeDef使用元组
- Pybind11:将元组列表从Python传递到C++
- 重载元组索引运算符-C++
- 在C++中,如何通过几种类型从元组中选择多个元素
- 将fold表达式与std::一起用于两个元组
- std::ranges::elements_view,用于自定义类似元组的数据
- 将元组的向量转换/构造为堆
- 专用于 std 元组的模板,而无需用户执行remove_cvref
- 将元组的向量构造成堆
- 元组由 Swig 生成的 Python 包装器返回,用于C++向量
- 将元组类型扩展为可变参数模板?
- 时间复杂度 当具有复合数据类型(如元组或对)时?
- 类内部和外部静态 constexpr 元组之间的差异
- 可变参数模板与使用元组在参数中添加不同的数据对
- 访问和打印元组中的数据,并使用 C++14 使用模板函数显示数据
- boost::包含提升单元的元组的哈希值
- 我正在寻找一种优雅的方式来从元组向量创建tuple_element向量
- 如何将元组插入地图?
- 复制地图<双精度,元组<双精度,双精度>>映射<双精度,双精度>没有循环?
- C++ 如何打印和(访问)矢量元组(在地图中)