标签: c++ iterator 2d-vector
我有一个2d向量,它是一个类成员。
std::vector<std::vector<int>> myvec;
无论如何,我可以有一个迭代器作为公共类成员遍历整个行和列吗?然后我可以用它来从向量中获取元素。
就像向量具有3行4列一样,我可以使用此myvec[1][1]访问iterator+5的5个元素?
myvec[1][1]
iterator+5
而且,这在某种程度上类似于C#中GetEnumerator()中的IEnumerable吗? 谢谢
GetEnumerator()
IEnumerable
答案 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