二维向量 class 成员上的迭代器

Iterator over 2d vector class member

我有一个二维向量,它是 class 成员。

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

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

就像向量有 3 行和 4 列一样,我可以使用此 iterator+5 访问 myvec[1][1] 的第 5 个元素?

此外,这是否类似于 C# 中 IEnumerable 中的 GetEnumerator()? 谢谢

使用 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;
}

Demo