c++ - 将二维数组值存储在一个线性 vector 中的循环逻辑

标签 c++ vector c++14

我有一个要求,我需要将 2 个轴值存储到线性 vector 中,一些值如 [x =0][y=1] 和 [y=0][x=1] 我不知道如何保存

我简单地添加了 i+j 来查找索引,但它现在在所有情况下都有效

我有 0>=x<=200 和 0>=y<=103

其中 x 增量 x= x+1 y 增量 y = y+1.5

有没有我可以导出的通用公式来线性保存所有数据

最佳答案

vector_1d_index = vector_2d_row_index * vector_2d_row_length + vector_2d_column_index

...假设您的 2D vector 是 i) 行优先和 ii) 矩形(统一长度行)。

(vector_1d_size = vector_2d_row_count * vector_2d_row_length)。

关于c++ - 将二维数组值存储在一个线性 vector 中的循环逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52553733/

相关文章:

c++ - QGLWidget 在 Windows 7 中显示为黑色

c++ - C++在 vector 中查找特定元素

c++ - 为什么 Foo({}) 调用 Foo(0) 而不是 Foo()?

c++ - 如何在重用 std::stringstream 变量时避免使用 std::stringstream.str() 和 std::stringstream.clear() ?

c++ - 我的蹦床弹不起来(绕行,C++,GCC)

c++ - 递归函数计数和打印 1 到 n-1 的分区

c++ - 如何比较 vector ?

java - 如何在java中将 vector 转换为字符串?

c++ - 允许移动和复制返回的类成员

c++ - static_assert 总是在 constexpr 中触发