c++ - 二维 vector 类成员的迭代器

标签 c++ iterator 2d-vector

我有一个二维 vector ,它是一个类成员。

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

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

如果 vector 有 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

关于c++ - 二维 vector 类成员的迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51762137/

相关文章:

c++ - 如何使用alignas替换pragma pack?

c++ - ostream::operator<< 不与 shared_ptr 中的 operator-> 一起工作

c++ - 在执行 DFS 时在 Boost::graph 中维护迭代器

c++ - 如何将文件中的字符放入二维 vector 中?

c++ - 将 vector 模拟为二维数组

android - 为什么我们需要使用 android 工具链(或 NDK)来编译在 android 应用程序上下文中运行的 c/c++ 代码?

C++ Vector Find() 重载运算符 - 错误

java - 将 ListIterator 限制为前 N 个元素(优化)

c++ - 通过其迭代器访问字符串 vector 中的 char

C++ 二维 vector 声明