首页 > 解决方案 > 二维向量类成员的迭代器

问题描述

我有一个 2d 向量,它是一个类成员。

std::vector<std::vector<int>> myvec;

无论如何,我可以有一个迭代器作为公共类成员迭代整个行和列吗?然后我可以用它从向量中获取元素。

就像如果向量有 3 行和 4 列,我可以myvec[1][1]使用这个来访问 5 个元素iterator+5

而且,这在某种程度上类似于C# 中的 in 吗GetEnumerator()IEnumerable谢谢

标签: c++iterator2d-vector

解决方案


使用Range-v3,您可以执行以下操作:

std::vector<std::vector<int>> v{{1, 2, 3}, {4, 5}, {6, 7, 8, 9}};

for (auto e : ranges::view::join(v)) {
    std::cout << e << std::endl;
}

演示


推荐阅读