2d向量类成员上的迭代器

时间:2018-08-09 08:24:07

标签: c++ iterator 2d-vector

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

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

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

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

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

1 个答案:

答案 0 :(得分:4)

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