有没有办法从二维数组中获取一维数组的数组索引?
例如:我有一个二维数组,数组大小未知,并在需要时更改(我使用 std::vector)到 push_back。只要它是一个二维数组,它就可以正常工作,但我需要获取这个二维数组的一维数组索引。
2D array:
Group 1 - 1, 2, 3
Group 2 - 4, 5, 6
Group 3 - 7, 8, 9, 10, 11, 12
等等。
所以,基本上有一种快速的方法可以知道当从第 2 组中选择 6 时,即 Array[1][2] = 6 => 我需要数组索引为:1D array=> Array[5] = 6 => 即我需要 5 作为我的答案。我已经尝试了几件事,但到目前为止还没有运气。有什么建议吗?
最佳答案
如果您的数据是静态的,您可以创建另一个数组,在其中存储每个一维数组的偏移量。对于您的示例,您将拥有以下数组 offset = {0, 3, 6}
。然后你可以通过offset[row] + col
找到索引。
如果可以更改行大小,则可以将每行的大小存储在二叉索引树中,并通过单个查询在 O(log n) 中找到偏移量,其中 n 是行数(一维 vector ).但是,每次更改行大小时,都必须在 O(log n) 中再次更新结构。
关于c++ - 从二维数组中获取一维数组索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20246924/